前言
有时候,我们需要根据不同的时间范围来查询数据。例如查询今天的,昨天的,本周的,上个月的等等。仅此记录一下。
sql语句
只写where条件,其中 operate_time 是数据库里和时间有关的一个字段,类型为datetime。主要使用的是SQL语句和时间有关函数,可以查看此链接学习: https://www.yiibai.com/sql/sql-date-functions.html 。
1、查询今天的数据
WHERE TO_DAYS(operate_time) = TO_DAYS(now())
2、查询昨天的数据
WHERE TO_DAYS(now()) - TO_DAYS(operate_time) = 1
3、查询本周的数据
WHERE YEARWEEK(operate_time) = YEARWEEK(NOW())
4、查询上周的数据
WHERE YEARWEEK(operate_time) = YEARWEEK(NOW()) -1
5、查询本月的数据
WHERE DATE_FORMAT(operate_time,'%Y-%m') = DATE_FORMAT(CURDATE(),'%Y-%m')
6、查询上个月的数据
WHERE DATE_FORMAT(operate_time,'%Y-%m') = DATE_FORMAT(DATE_SUB(CURDATE(), INTERVAL 1 MONTH),'%Y-%m')
7、查询本季度的数据
WHERE QUARTER(operate_time) = QUARTER(NOW())
8、查询上季度的数据
WHERE QUARTER(operate_time) = QUARTER( DATE_SUB(NOE(), INTERVAL 1 QUARTER) )
9、查询今年的数据
WHERE YEAR(operate_time) = YEAR(NOW())
10、查询去年的数据
WHERE YEAR(operate_time) = YEAR(DATE_SUB(NOW(),INTERVAL 1 YEAR))
11、查询近30天的数据
WHERE DATE_SUB(CURDATE(), INTERVAL 30 DAY) <= DATE(operate_time)
12、查询指定时间段的数据
WHERE operate_time BETWEEN '2017-1-1 00:00:00' AND '2018-1-1 00:00:00';