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。