朋友问我时间查询的的sql,闲下来统计了一下,应该回满足需求的,特殊的查询暂时没想到。
今天
select*from表名whereto_days(时间字段名)=to_days(now());
昨天
SELECT*FROM表名WHERETO_DAYS( NOW( ) )-TO_DAYS( 时间字段名)<=1;
近7天
SELECT * FROM 表名 where DATE_SUB(CURDATE(), INTERVAL 7 DAY)<=date(时间字段名);
近30天
SELECT * FROM 表名 where DATE_SUB(CURDATE(), INTERVAL 30 DAY)<=date(时间字段名);
本月数据
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;
查询本季度数据
select*from 表名 where QUARTER(create_date)=QUARTER(now());
查询上季度数据
select * from 表名 where QUARTER(create_date)=QUARTER(DATE_SUB(now(),interval1QUARTER));
查询本年度
select * from 表名 where YEAR(create_date)=YEAR(NOW());
查询上年度
select * from 表名 where year(create_date)=year(date_sub(now(),interval 1 year));
查询当前周的数据
SELECT * FROM 表名 WHERE YEAR WEEK(date_format(表列名,'%Y-%m-%d'))= YEAR WEEK(now());
欢迎大家收藏,如有其他问题请留言,我回及时回答大家的问题的!!!
网友评论