首页 > 解决方案 > MySQL中的特定时间范围查询

问题描述

我正在尝试选择在一定时间范围内插入的行的值;

即今天早上8 点到前一天早上8 点之间。

这是每天作为 cron 作业运行,以检查在该时间段之间插入的数量并将数据插入另一个表中。

下面是表格;

订单表

标签: mysqlsql

解决方案


一种相对简单的方法是将 转换date_time为日期值——减去 8 小时后:

where date(from_unixtime(date_time - 8 * 60 * 60)) = curdate() - interval 1 day 

一种更有效的方法是完全在 Unix 时代的领域中做到这一点:

where date_time < unix_timestamp(curdate() + interval 8 hour) and
      date_time >= unix_timestamp(curdate() - interval 16 hour)

推荐阅读