mysql日期函数

Mysql 统计最近七天内的数据并分组

一世执手 提交于 2019-12-01 18:03:26
本文的核心内容:Mysql 统计 最近七天内 的数据并 按天分组 。 自己做项目,想要做有关管理页面的相关报表。其中有一张图表,采用折线图的方式(表示用户增减趋势),显示最近七天内,每天的用户新增数量。 第一步:查询一定范围内的数据、数量 查询最近一天的数据: select * from table where to_days(column_time) = to_days(now()); select * from table where date(column_time) = curdate(); 查询最近一周的数据 select * from "table" where DATE_SUB(CURDATE(), INTERVAL 7 DAY) <= date("column_time"); 语句解析 ① :CURRENT_DATE:以‘YYYY-MM-DD’或YYYYMMDD格式返回今天日期值,取决于函数在一个字符串还是数字上下文被使用。select CURTIME(); ② :DATE_SUB(date,INTERVAL expr type) ,进行日期减少的操作,可以精确到秒 查询最近一个月的数据: select * from table where DATE_SUB(CURDATE(), INTERVAL INTERVAL 1 MONTH) <= date(column

mysql实现查询最近7天的数据

你。 提交于 2019-12-01 18:03:16
mysql查询最近7天的数据: 1.(以当天为起点) SELECT * FROM tb_equity e where DATE_SUB(CURDATE(), INTERVAL 6 DAY) <= date(createdate) 解释:DATE_SUB() 函数从日期减去指定的时间间隔。DATE_SUB(date,INTERVAL expr type),6表示截取的天数,最后的DAY表示按天来进行截取。 CURDATE()表示当前的系统时间(日期),另有CURTIME()表示当前的系统时间(时分秒) date(表中的时间字段) 2.(以数据库最新的时间最为最近的一天) SELECT * FROM tb_equity e where createdate > DATE_ADD((select createdate from tb_equity ORDER BY createdate DESC limit 1) ,INTERVAL -7 day) and (select createdate from tb_equity ORDER BY createdate DESC limit 1) >= createdate 3.sql查询表中的重复数据 select * from 表名 where 字段名 in (select 字段名 from 表名 group by 字段名 HAVING

MYSQL内置函数【转】

喜夏-厌秋 提交于 2019-12-01 16:43:41
一、MySQL 字符串函数 函数 描述 实例 ASCII(s) 返回字符串 s 的第一个字符的 ASCII 码。 返回 CustomerName 字段第一个字母的 ASCII 码: SELECT ASCII(CustomerName) AS NumCodeOfFirstChar FROM Customers; CHAR_LENGTH(s) 返回字符串 s 的字符数 返回字符串 RUNOOB 的字符数 SELECT CHAR_LENGTH("RUNOOB") AS LengthOfString; CHARACTER_LENGTH(s) 返回字符串 s 的字符数 返回字符串 RUNOOB 的字符数 SELECT CHARACTER_LENGTH("RUNOOB") AS LengthOfString; CONCAT(s1,s2...sn) 字符串 s1,s2 等多个字符串合并为一个字符串 合并多个字符串 SELECT CONCAT("SQL ", "Runoob ", "Gooogle ", "Facebook") AS ConcatenatedString; CONCAT_WS(x, s1,s2...sn) 同 CONCAT(s1,s2,...) 函数,但是每个字符串之间要加上 x,x 可以是分隔符 合并多个字符串,并添加分隔符: SELECT CONCAT_WS("-", "SQL

MySQL:UNIX时间戳与日期的相互转换

半城伤御伤魂 提交于 2019-12-01 14:55:35
在PHP+MySQL编程中, UNIX时间戳 和 格式化日期 是我们常打交道的两个时间表示形式,Unix时间戳存储、处理方便,但是不直观,格式化日期直观,但是处理起来不如Unix时间戳那么自如,所以有的时候需要互相转换,下面给出互相转换的几种转换方式。 一、在MySQL中完成 这种方式在MySQL查询语句中转换,优点是不占用PHP解析器的解析时间,速度快,缺点是只能用在数据库查询中,有局限性。 1. UNIX时间戳转换为日期用函数: FROM_UNIXTIME() 一般形式: select FROM_UNIXTIME(1156219870); 2. 日期转换为UNIX时间戳用函数: UNIX_TIMESTAMP() 一般形式: Select UNIX_TIMESTAMP(’2006-11-04 12:23:00′); 举例:mysql查询当天的记录数: $sql=”select * from message Where DATE_FORMAT(FROM_UNIXTIME(chattime),’%Y-%m-%d’) = DATE_FORMAT(NOW(),’%Y-%m-%d’) order by id desc”; 当然大家也可以选择在PHP中进行转换,下面说说在PHP中转换。 二、在PHP中完成 这种方式在PHP程序中完成转换,优点是无论是不是数据库中查询获得的数据都能转换

mysql知识点回顾与梳理

只愿长相守 提交于 2019-12-01 09:06:25
一、sql语句执行顺序 from join on where group by avg,sum,count等各种函数 having select distinct order by(asc(升序),desc(降序)) LIMIT 二、如何获取表记录,或者某字段不同值个数 select count(distinct a.user_id) as cnt from table a 三、如何在sql表(假设为表a)中删除重复行 方法1: stp1:筛选出不重复的表记录 select distinct a.* from a stp2:将记录插入到临时表b中 insert into b select distinct a.* from a stp3:清空表a truncate table a stp4:将临时表数据插入表a insert into a select * from b 方法2: delete from a where (a.col_1,a.col_2) in ( select col_1,col_2 from a group by col_1,col_2 having count(*) > 1) and rowid not in (select min (rowid) a vitae group by col_1,col_2 having count(*)>1) 四、My Sql

6-5 函数

巧了我就是萌 提交于 2019-12-01 06:55:35
一 函数 MySQL中提供了许多内置函数,例如: 一、数学函数 ROUND(x,y) 返回参数x的四舍五入的有y位小数的值 RAND() 返回0到1内的随机值,可以通过提供一个参数(种子)使RAND()随机数生成器生成一个指定的值。 二、聚合函数(常用于GROUP BY从句的SELECT查询中) AVG(col)返回指定列的平均值 COUNT(col)返回指定列中非NULL值的个数 MIN(col)返回指定列的最小值 MAX(col)返回指定列的最大值 SUM(col)返回指定列的所有值之和 GROUP_CONCAT(col) 返回由属于一组的列值连接组合而成的结果 三、字符串函数 CHAR_LENGTH(str) 返回值为字符串str 的长度,长度的单位为字符。一个多字节字符算作一个单字符。 CONCAT(str1,str2,...) 字符串拼接 如有任何一个参数为NULL ,则返回值为 NULL。 CONCAT_WS(separator,str1,str2,...) 字符串拼接(自定义连接符) CONCAT_WS()不会忽略任何空字符串。 (然而会忽略所有的 NULL)。 CONV(N,from_base,to_base) 进制转换 例如: SELECT CONV('a',16,2); 表示将 a 由16进制转换为2进制字符串表示 FORMAT(X,D) 将数字X 的格式写为'

关于MySQL的日期和时间类型

纵然是瞬间 提交于 2019-12-01 05:24:53
摘自MySQL中文文档: 11.3.1. DATETIME、DATE和TIMESTAMP类型 11.3.2. TIME类型 11.3.3. YEAR类型 11.3.4. Y2K事宜和日期类型 表示时间值的DATE和时间类型为DATETIME、DATE、TIMESTAMP、TIME和YEAR。每个时间类型有一个有效值范围和一个“ 零 ”值,当指定不合法的MySQL不能表示的值时使用“ 零 ”值。TIMESTAMP类型有专有的自动更新特性,将在后面描述。 如果试图插入一个不合法的日期,MySQL将给出警告或错误。可以使用ALLOW_INVALID_DATES SQL模式让MySQL接受某些日期,例如'1999-11-31'。当你想要保存一个“ 可能错误的 ”用户已经在数据库中指定(例如,以web形式)用于将来处理的值时很有用。在这种模式下,MySQL只验证月范围为从0到12,日范围为从0到31。这些范围可以包括零,因为MySQL允许在DATE或DATETIME列保存日/月和日是零的日期。这在应用程序需要保存一个你不知道确切日期的生日时非常有用。在这种情况下,只需要将日期保存为'1999-00-00'或'1999-01-00'。如果保存此类日期,DATE_SUB()或DATE_ADD等需要完整日期的函数不会得到正确的结果。(如果你不想在日期中出现零,可以使用NO_ZERO_IN_DATE

MySQL Reference Manual中文版

前提是你 提交于 2019-12-01 05:01:08
<< Back to man.ChinaUnix.net MySQL Reference Manual for version 4.1.0-alpha.     译者序   列类型与函数索引 6 MySQL 语言参考 6.1 语言结构 6.1.1 文字:怎么写字符串与数字 6.1.1.1 字符串 6.1.1.2 数字 6.1.1.3 十六进制值 6.1.1.4 NULL 值 6.1.2 数据库、表、索引、列和别名 6.1.3 名字的大小写敏感性 6.1.4 用户变量 6.1.5 系统变量 6.1.6 注释句法 6.1.7 MySQL 对保留字挑剔吗? 6.2 列类型 6.2.1 数字类型 6.2.2 Date 和 Time 类型 6.2.2.1 Y2K 问题和日期类型 6.2.2.2 DATETIME、DATE 和 TIMESTAMP 类型 6.2.2.3 TIME 类型 6.2.2.4 YEAR 类型 6.2.3 字符串类型 6.2.3.1 CHAR 和 VARCHAR 类型 6.2.3.2 BLOB 和 TEXT 类型 6.2.3.3 ENUM 类型 6.2.3.4 SET 类型 6.2.4 为列选择正确的类型 6.2.5 使用来自其它的数据库引擎的列类型 6.2.6 列类型存储需求 6.2.6.1 数字类型存储需求 6.2.6.2 日期和时间类型存储需求 6.2.6.3

mysql文档

雨燕双飞 提交于 2019-12-01 04:51:33
一、mysql简介 1.1 mysql是什么? mysql是完全网络化的跨平台的关系型数据库管理系统(RDBMS),也是基于客户端/服务器体系的分布式数据库管理系统。 1.2 关系型数据库的两个原则 实体完整性原则和引用完整性原则。 实体完整性原则:数据库表的主键不能全部或者部分为空(主键可以是一列,也可以是多列,多列组成的主键被称为联合主键)。 引用完整性原则:数据库表的外键必须为空或者必须与它所引用的其他表的主键相一致。 一、数据库内容介绍 1.1数据库表支持的数据类型 大体包含三类,字符串、数字、日期和null值。 1.1.1字符串(枚举) 字符串既可以使用单引号,也可以使用双引号。mysql不仅支持普通的字符,还支持转义序列表示的特殊字符。 例如: insertinto t_stock(stock_name,stock_price,stock_salePrice) values('股票\r\n一号',99.99,99.99);保存到数据库后是换行。 mysql支持的特殊字符 1.1.2 数字值 mysql提供了五种整数类型:tinyint , smallint , mediumint , int ,bigint . mysql提供了三种浮点类型:float , double , decimal . 1.1.3 日期值 日期和时间值是一些类似于“1999-06-17”或“12

学习MySQL官方文档(一)

生来就可爱ヽ(ⅴ<●) 提交于 2019-12-01 04:44:20
前提:看这篇文档之前我已经装了一台虚拟机,并在虚拟机上装好了mysql服务,还装了Navicat并连接上虚拟机的mysql服务 1、连接到服务器和从服务器断开连接 shell> mysql - h host - u user - p Enter password: * * * * * * * * Welcome to the MySQL monitor . Commands end with ; or \g . Your MySQL connection id is 25338 to server version: 5 . 7 . 29 - standard Type 'help;' or '\h' for help . Type '\c' to clear the buffer . mysql> host是要连接的服务器的ip,如果是在运行MySQL的同一台计算机上登录,则可以省略主机,只需使用以下命令: shell> mysql - u user - p 如果在尝试登录时收到诸如ERROR 2002(HY000)之类的错误消息 :无法通过套接字’/tmp/mysql.sock’(2)连接到本地MySQL服务器,则意味着该MySQL服务器守护程序(Unix)或服务(Windows)未运行。 从服务器断开连接 mysql> QUIT Bye 2