mysql是常用的数据库,php+mysql是常用的组合,在web开发后台总有一些需要统计的图表、数据。下面是常用的mysql按日、周、月、季查询的方式。
条件自己定义。
说明:
create_time:是需要查询的时间字段
createTime:是查询的别名
tableName:是需要查询的表名
id、payPrice、refundMoney:仅代表某些字段。
SQL语句如下:
/*查询2小时前的数据*/ SELECT * FROM tableName WHERE create_time < DATE_SUB(NOW(), INTERVAL 2 HOUR) ORDER BY create_time DESC; /*按天统计*/ SELECT count(id) countNum, DATE(create_time) createTime FROM tableName GROUP BY DATE(create_time) ORDER BY DATE(create_time) DESC; /*按周统计*/ SELECT count(id) countNum, WEEK(create_time) createTime FROM tableName GROUP BY WEEK(create_time) ORDER BY WEEK(create_time) DESC; /*按月统计*/ SELECT count(id) countNum, MONTH(create_time) createTime FROM tableName GROUP BY MONTH(create_time) ORDER BY MONTH(create_time) DESC; /*按季度统计*/ SELECT count(id) countNum, QUARTER(create_time) createTime FROM tableName GROUP BY QUARTER(create_time) ORDER BY QUARTER(create_time) DESC; /*按年统计*/ SELECT count(id) countNum, YEAR(create_time) createTime FROM tableName GROUP BY YEAR(create_time) ORDER BY YEAR(create_time) DESC;
MYSQL 函数说:
数据类型 描述
DATE() 日期。格式:YYYY-MM-DD
注释:支持的范围是从 '1000-01-01' 到 '9999-12-31'
DATETIME() *日期和时间的组合。格式:YYYY-MM-DD HH:MM:SS
注释:支持的范围是从 '1000-01-01 00:00:00' 到 '9999-12-31 23:59:59'
TIMESTAMP() *时间戳。TIMESTAMP 值使用 Unix 纪元('1970-01-01 00:00:00' UTC) 至今的秒数来存储。格式:YYYY-MM-DD HH:MM:SS
注释:支持的范围是从 '1970-01-01 00:00:01' UTC 到 '2038-01-09 03:14:07' UTC
TIME() 时间。格式:HH:MM:SS
注释:支持的范围是从 '-838:59:59' 到 '838:59:59'
YEAR() 2 位或 4 位格式的年。
注释:4 位格式所允许的值:1901 到 2155。2 位格式所允许的值:70 到 69,表示从 1970 到 2069。