MySQL查询今天的数据(昨天本月)
Posted 笨兮兮
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MySQL查询今天的数据(昨天本月)相关的知识,希望对你有一定的参考价值。
对于mysql而言,它有自己的函数来查询时间和日期,查询今天的数据也有相应的做法。
数据库结构如下,进行说明:
CREATE TABLE `orders` ( `id` int(11) NOT NULL AUTO_INCREMENT, `order_name` varchar(45) COLLATE utf8_bin NOT NULL, `order_time` datetime NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
1.查询今天的数据
1.1方法一
SELECT * FROM orders WHERE TO_DAYS(order_time) = TO_DAYS(NOW())
参数说明:
TO_DAYS()是MySQL自带的函数,其作用是查询指定日期到0年的天数。 NOW()是表示当前时间
当前时间见详细说明
1.2方法二
select * from orders where DAY(order_time) = DAY(NOW())
参数说明:
YEAR()返回指定时间的年份 MONTH()返回指定时间的月份 DAY()返回指定时间的日份
具体用法:
SELECT YEAR(\'2021-06-05\');##2021
SELECT MONTH(\'2021-06-05\');##6
SELECT DAY(\'2021-06-05\');##5
2.查询昨天的数据
SELECT * FROM orders WHERE TO_DAYS(NOW()) - TO_DAYS(order_time) = 1
查询昨天的数据,只需要今天的天数比数据的时间多1天即可。
3.查询最近7天的数据
最近7天,也包括今天。
SELECT * FROM orders where DATE_SUB(CURDATE(), INTERVAL 7 DAY) < date(order_time)
参数说明:
DATE_SUB() 函数作用是对日期减去指定的时间间隔(天,月,季度...),返回新的日期。 date()函数时把值转换为日期类型。 CURDATE()是当前的日期,
具体用法:
SELECT DATE_SUB(CURDATE(), INTERVAL 7 DAY); ##2021-05-26 SELECT date(NOW()); ##2021-06-02
当前日期用法见详细说明。
4.查询最近30天的数据
最近30天,也包括今天。
SELECT * FROM orders where DATE_SUB(CURDATE(), INTERVAL 30 DAY) < date(order_time)
5.查询本月的数据
5.1方法一
SELECT * FROM orders WHERE DATE_FORMAT(order_time, \'%Y%m\') = DATE_FORMAT(CURDATE(), \'%Y%m\')
参数说明:
DATE_FORMAT()是对日期进行格式化,%Y%m表示只格式化到月
具体用法:
SELECT DATE_FORMAT(\'2021-06-02 10:30:25\',\'%Y%m\') ##202106
5.2方法二
select * from orders where MONTH(order_time) = MONTH(NOW())
6.查询上个月的数据
SELECT * FROM orders WHERE PERIOD_DIFF(DATE_FORMAT(NOW(),\'%Y%m\'), DATE_FORMAT(order_time,\'%Y%m\')) =1
参数说明:
PERIOD_DIFF()函数返回两日期之间的差异
具体用法:
SELECT PERIOD_DIFF(20210530, 20210512); ##18
7.查询最近6个月的数据
最近6个月,包含当前月份。
SELECT * FROM orders WHERE PERIOD_DIFF(DATE_FORMAT(NOW(),\'%Y%m\'), DATE_FORMAT(order_time,\'%Y%m\')) <=5
8.查询本季度的数据
SELECT * FROM orders WHERE QUARTER(order_time)=QUARTER(NOW())
参数说明:
QUARTER()函数返回给定日期值(1到4之间的数字)的一年中的季度。
具体用法:
SELECT QUARTER("2021-05-01 09:34:21"); ##2
9.查询上季度的数据
SELECT * FROM orders WHERE QUARTER(order_time)=QUARTER(DATE_SUB(NOW(),INTERVAL 1 QUARTER))
这里使用DATE_SUB()函数获取上个季度的日期。
10.查询今年的数据
SELECT * FROM orders WHERE YEAR(order_time)=YEAR(NOW())
11.查询去年的数据
SELECT * FROM orders WHERE YEAR(order_time)=YEAR(DATE_SUB(NOW(),INTERVAL 1 YEAR))
这里使用DATE_SUB()函数获取上一年的日期。
以上是关于MySQL查询今天的数据(昨天本月)的主要内容,如果未能解决你的问题,请参考以下文章
mysql查询今天,昨天,近7天,近30天,本月,上一月数据
板邓:mysql查询今天,昨天,近7天,近30天,本月,上一月数据的方法