MySql 日期查询

原创
2017/04/28 17:44
阅读数 33

MySql

统计今日数量

SELECT  count(a.id)  FROM  表名  a
WHERE  TO_DAYS(a.时间字段名称) =  TO_DAYS(NOW());

统计本周数量

SELECT   count(a.id)  FROM  表名 a 
WHERE  YEARWEEK(DATE_FORMAT(a.时间字段名称,'%Y-%m-%d'))=YEARWEEK(NOW());

统计本月数量

SELECT   count(a.id)  FROM  表名 a 
WHERE  DATE_FORMAT(a.时间字段名称,'%Y%m')=DATE_FORMAT(CURDATE(),'%Y%m');

----------上一个月-------

统计上一个月的今日数量(平年,闰年的,28等特殊数字,有就统计,没有就显示0,同时同年,月份相减得1)

SELECT   count(a.id)  FROM  表名 a 
WHERE  (DAY(a.时间字段名称) =  DAY(NOW()))  AND   PERIOD_DIFF(DATE_FORMAT(NOW(),'%Y%m'),DATE_FORMAT(a.时间字段名称,'%Y%m'))=1;

统计上一个月的本周数量(同年,月份相减得1,同时两个时间日期相差得4,意味着这两个日期是不同月份的同一周数,比如同为每个月的第一周)

SELECT   count(a.id)  FROM  表名 a 
WHERE   PERIOD_DIFF(YEARWEEK(NOW()),   YEARWEEK(DATE_FORMAT(a.时间字段名称,'%Y-%m-%d')))=4 AND  PERIOD_DIFF(DATE_FORMAT(NOW(),'%Y%m'),  DATE_FORMAT(a.时间字段名称,'%Y%m'))=1;

统计上一个月的数量(格式化日期到年月,利用同年,不同月份之间的差值来计算)

SELECT   count(a.id)  FROM  表名 a
WHERE   PERIOD_DIFF(DATE_FORMAT(NOW(),'%Y%m'),DATE_FORMAT(a.时间字段名称,'%Y%m'))=1;
展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部