根据日期统计sql语句
今天
SELECT 统计字段 name ,COUNT(1) value
FROM 表 WHERE TO_DAYS(日期字段) = TO_DAYS(now())
GROUP BY name;
昨天
SELECT 统计字段 name ,COUNT(1) value
FROM 表 WHERE TO_DAYS( now( ) ) - TO_DAYS( 日期字段) <= 1
GROUP BY name;
本周
SELECT 统计字段,时间字段
FROM 表
WHERE YEARWEEK(date_format(时间字段,'%Y%m%d')) = YEARWEEK(now());
近7天(统计每天)
SELECT 统计字段 name ,COUNT(1) value,DATE_FORMAT(日期字段,'%Y%m%d') date
FROM 表
WHERE DATE_SUB(CURDATE(), INTERVAL 7 DAY) <= DATE(日期字段)
GROUP BY name ,date
ORDER BY name ,date asc
上周
SELECT 统计字段,时间字段
FROM 表
WHERE YEARWEEK(date_format(时间字段,'%Y%m%d'))= YEARWEEK(now())-1;
本月
SELECT *
FROM 表名
WHERE DATE_FORMAT(日期字段,'%Y%m')=DATE_FORMAT(CURDATE(),'%Y%m')
上月
SELECT 查询字段
FROM 表 WHERE PERIOD_DIFF( DATE_FORMAT( now() , '%Y%m' ) , DATE_FORMAT( 日期字段, '%Y%m' ) ) =1
近6个月
SELECT 查询字段,时间字段
FROM 表 WHERE 时间字段 between date_sub(now(),interval 6 month) and now();
近12个月(统计每月)
SELECT 统计字段 name, DATE_FORMAT(时间字段,'%Y%m') date,COUNT(1) value
FROM 表
WHERE 1 = 1
GROUP BY date,name
HAVING date < DATE_FORMAT(DATE_ADD(NOW(),INTERVAL 1 MONTH ), '%Y%m' )
AND date > DATE_FORMAT(DATE_ADD(NOW(), INTERVAL - 12 MONTH ), '%Y%m' )
ORDER BY name,date asc
本季度
SELECT *
FROM 表 WHERE QUARTER(日期字段)=QUARTER(now());
上季度
SELECT *
FROM 表 WHERE QUARTER(日期字段)=QUARTER(DATE_SUB(now(),interval 1 QUARTER));
本年度
SELECT *
FROM 表 WHERE YEAR(日期字段)=YEAR(NOW());
上一年
SELECT *
FROM 表 WHERE YEAR(日期字段)=YEAR(date_sub(now(),interval 1 year));