1. Query data for today, yesterday, the past 7 days, and the past 30 days
(1) Query today's data
-- 方式 1SELECT*FROM guojia_zwfw_up_pro_accept a WHERE TO_DAYS(a.ApplyDate)= TO_DAYS(NOW());-- TO_DAYS(字段) 函数,计算时间0开始计算到data时间点的天数(即从公元元年的第一天开始)-- NOW():显示当前系统时间,格式为yyyy-MM-dd HH:mm:ss-- 方式2SELECT*FROM guojia_zwfw_up_pro_accept a WHEREDATE(a.ApplyDate)= CURDATE();-- DATE(字段) 函数,按天格式化时间,格式为:yyyy-MM-dd-- CURDATE():显示当前系统时间,格式为yyyy-MM-dd
(2) Query yesterday's data
-- 方式 1SELECT*FROM guojia_zwfw_up_pro_accept a WHERE TO_DAYS(NOW())- TO_DAYS(a.ApplyDate)=1;-- 方式2SELECT*FROM guojia_zwfw_up_pro_accept a WHEREDATE(a.ApplyDate)= DATE_SUB(CURDATE(),INTERVAL1DAY);-- DATE_SUB(date,INTERVAL expr unit)函数,计算某个时间点之前的时间,date:指定的时间,expr间隔周期,unit周期单位(day、month、year)
(3) Query data for the past 7 days
SELECT*FROM guojia_zwfw_up_pro_accept a where DATE_SUB(CURDATE(),INTERVAL7DAY)<=DATE(a.ApplyDate);
(4) Query data for the past 30 days
SELECT*FROM guojia_zwfw_up_pro_accept a WHERE DATE_SUB(CURDATE(),INTERVAL30DAY)<=DATE(a.ApplyDate);
2. Query the data of this week and last week
(1) Query data for this week
SELECT*FROM guojia_zwfw_up_pro_accept a WHERE YEARWEEK(DATE_FORMAT(a.ApplyDate,'%Y-%m-%d'))= YEARWEEK(NOW());-- YEARWEEK(NOW())函数,显示当前时间是本年第多少周-- DATE_FORMAT(date,format)函数,按照指定样式格式化时间
(2) Query last week's data
SELECT*FROM guojia_zwfw_up_pro_accept a WHERE YEARWEEK(DATE_FORMAT(a.ApplyDate,'%Y-%m-%d'))= YEARWEEK(NOW())-1;
3. Query the current month, last month, 6 months from the current data
(1) Query this month's data
SELECT*FROM guojia_zwfw_up_pro_accept a WHERE DATE_FORMAT(a.ApplyDate,'%Y%m')= DATE_FORMAT(CURDATE(),'%Y%m');
(2) Query last month's data
-- 方式 1SELECT*FROM guojia_zwfw_up_pro_accept a WHERE PERIOD_DIFF(DATE_FORMAT(now(),'%Y%m'), DATE_FORMAT(a.ApplyDate,'%Y%m'))=1;-- PERIOD_DIFF(P1,P2)函数返回两个日期之间的月份数-- 方式 2SELECT*FROM guojia_zwfw_up_pro_accept a WHERE DATE_FORMAT(a.ApplyDate,'%Y-%m')= DATE_FORMAT(DATE_SUB(CURDATE(),INTERVAL1MONTH),'%Y-%m');-- 方式 3SELECT*FROM guojia_zwfw_up_pro_accept a WHEREYEAR(a.ApplyDate)=YEAR(NOW())ANDMONTH(a.ApplyDate)=MONTH(now())-1;-- YEAR(date)计算年份-- MONTH(date)计算月份-- 方式 4 需要额外传参SELECT*FROM guojia_zwfw_up_pro_accept a WHERE a.ApplyDate BETWEEN'上月第一天'AND'本月第一天';-- 优化向SELECT*FROM guojia_zwfw_up_pro_accept a WHERE a.ApplyDate BETWEEN(SELECT date_add(curdate()-DAY(curdate())+1,INTERVAL-1MONTH))AND(SELECT date_add(curdate()-DAY(curdate())+1,INTERVAL0MONTH));
(3) Data from the current 6 months
SELECT*FROM sythqzk.guojia_zwfw_up_pro_accept WHERE ApplyDate BETWEEN DATE_SUB(NOW(),INTERVAL6MONTH)ANDNOW();-- 统计数据不含当月数据