MySQL 查询当天、周、月,最近一周、一月的数据,以及当年每月的统计数据
最近在做项目的时候,需要查询当月数据,就整理类似的这些语句,希望对大家有所帮助
-
---以下例子时间字段默认为时间格式,如时间字段存储格式为时间戳,需如下处理:
-
from_unixtime(`时间字段`)
- 查询当天数据:
SELECT * FROM 表名 WHERE TO_DAYS(表中时间字段) = TO_DAYS(NOW());
- 查询当周数据:
SELECT * FROM 表名 WHERE YEARWEEK(DATE_FORMAT(表中时间字段,‘%Y-%m-%d’)) = YEARWEEK(NOW());
- 查询当月数据:
SELECT * FROM 表名 WHERE YEARWEEK(DATE_FORMAT(表中时间字段,‘%Y-%m’)) = DATE_FORMAT(CURDATE(),'%Y-%m');
- 查询最近一周数据:
SELECT * FROM 表名 WHERE DATE_SUB(CURDATE(),INTERVAL 1 WEEK) <= DATE(表中时间字段);
- 查询最近一月内的数据:
SELECT * FROM 表名 WHERE DATE_SUB(CURDATE(),INTERVAL 1 MONTH) <= DATE(表中时间字段);
- 查询当年每月的统计数据:
SELECT MONTH(`表中日期字段`), COUNT(*) FROM `表名` WHERE YEAR(CURDATE()) GROUP BY MONTH(`表中日期字段`)