MYSQL从昨天开始获取时间记录

时间:2018-12-11 21:11:07

标签: mysql

我正在尝试从MYSQL的“昨天”获取记录,但是有一个问题。 “昨天”的定义是从昨天上午8点到今天上午8点(营业前)。

获取昨天的标准方式是:

 where timestamp BETWEEN DATE_ADD(CURDATE(), INTERVAL -1 day) AND CURDATE()

但是我该如何将其转移到我所关注的上午8点到8点呢?这是动态的,所以我不能在硬编码的时间范围内使用。

谢谢!

1 个答案:

答案 0 :(得分:3)

您可以将CURDATE()减去16小时或增加8小时,例如,获取所需的时间窗口。

SELECT CURDATE() - INTERVAL 16 HOUR, CURDATE() + INTERVAL 8 HOUR

输出:

CURDATE() - INTERVAL 16 HOUR    CURDATE() + INTERVAL 8 HOUR
2018-12-10 08:00:00             2018-12-11 08:00:00

因此您的WHERE子句将变为

WHERE timestamp BETWEEN CURDATE() - INTERVAL 16 HOUR, CURDATE() + INTERVAL 8 HOUR