1.1 日期相关

与日期相关的 SQL 语句。

查询今天的数据

今天
select * from TableName where TO_DAYS(时间字段) = TO_DAYS(NOW())

查询昨天的数据

昨天
select * from TableName where TO_DAYS(时间字段) = TO_DAYS(NOW()) - 1

查询前天的数据

前天
select * from TableName where TO_DAYS(时间字段) = TO_DAYS(NOW()) - 2

查询 7 天之内的数据

7 天之内
select * from TableName where DATE_SUB(CURDATE(), INTERVAL 7 DAY) <= DATE(时间字段)

查询 30 天之内的数据

select * from TableName where DATE_SUB(CURDATE(), INTERVAL 30 DAY) <= date(时间字段)

查询本月数据

select * from TableName where DATE_FORMAT(时间字段,'%Y%m' ) = DATE_FORMAT(CURDATE(),'%Y%m')

查询上个月数据

上个月
select * from TableName where DATE_FORMAT(时间字段,'%Y%m') = DATE_FORMAT(DATE_SUB(CURDATE(),INTERVAL 1 MONTH),'%Y%m')
-- 或
select * from TableName where PERIOD_DIFF(DATE_FORMAT(NOW(),'%Y%m'),DATE_FORMAT(时间字段,'%Y%m')) = 1

PERIOD_DIFF(str1,str2): 返回 str1 和 str2 之间相隔的月数,str1 和 str2的格式为 YYmm(1907) 或 YYYYmm(201907),可以使用 %Y%m 将时间格式化成相应的格式。

查询前3个月数据(含本月)

前 3 个月(含本月)
select * from TableName where DATE(时间字段) >= DATE_SUB(CURDATE(),INTERVAL 3 MONTH)

查询本季度数据

查询上一个季度

查询本年数据

查询去年数据

Last updated

Was this helpful?