简单的mysql按天,按周,按月,按季度,按年统计数据

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。

评论/留言