1、几个小时内的数据:
DATE_SUB(NOW(), INTERVAL 5 HOUR
2、今天
select * from 表名 where to_days(时间字段名) = to_days(now());
3、昨天:
select * from 表名 WHERE TO_DAYS( NOW( ) ) - TO_DAYS( 时间字段名) <= 1;
4、7天:
select * from 表名 where DATE_SUB(CURDATE(), INTERVAL 7 DAY) <= date(时间字段名);
5、近30天
select * from 表名 where DATE_SUB(CURDATE(), INTERVAL 30 DAY) <= date(时间字段名);
6、本月
select * from 表名 WHERE DATE_FORMAT( 时间字段名, '%Y%m' ) = DATE_FORMAT( CURDATE( ) , '%Y%m' );
7、上一月(=1 now()的时间和时间字段名的时间相差1一个%m, 也可以使用'>' '<' )
select * from 表名 WHERE PERIOD_DIFF( date_format( now( ) , '%Y%m' ) , date_format( 时间字段名, '%Y%m' ) ) =1;
8、获取当前时间的周一和周日 的日期
select subdate(curdate(),date_format(curdate(),'%w')-1);
select subdate(curdate(),date_format(curdate(),'%w')-7);
网友评论