我正在尝试从MYSQL的“昨天”获取记录,但是有一个问题。 “昨天”的定义是从昨天上午8点到今天上午8点(营业前)。
获取昨天的标准方式是:
where timestamp BETWEEN DATE_ADD(CURDATE(), INTERVAL -1 day) AND CURDATE()
但是我该如何将其转移到我所关注的上午8点到8点呢?这是动态的,所以我不能在硬编码的时间范围内使用。
谢谢!
答案 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