MySQL查询今天的数据(昨天、本月) |
您所在的位置:网站首页 › mysql查询某个时间以后的数据 › 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')) |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |