使用 MySQL 查询每天上午 11 点之前

Query for daily before 11am with MySQL

我有一个 日期时间 字段,想在上午 11 点之前获取所有条目。它适用于在线商店,您可以在 11:00am 之前订购,当天发货。

SELECT * 
FROM Tablename 
WHERE (order.date_added < STR_TO_DATE(YEAR(), MONTH(), DAY()'%Y %d,%M'), '11:00:00')

不幸的是,我不知道如何assemble这个声明。

如果您想在 11:00 a.m 之前下订单。 今天,您可以使用:

where o.date_added >= curdate() and
      time(o.date_added) < '11:00:00'

这会为您提供当天 11 点

CurDATE() + INTERVAL  11 HOUR

并且查询选择昨天11点到今天11点之间的所有订单。

您还应该添加条件以排除所有已下订单

CREATE tABLe orders (date_added DATETIME)
INSERT INTO orders VALUES (NOW() -INTERVAL 10 HOUR)
SELECT * 
FROM orders 
WHERE orders.date_added BETWEEN (CurDATE() - INTERVAL 1 DAY) + INTERVAL  11 HOUR AND  CurDATE() + INTERVAL  11 HOUR
| date_added          |
| :------------------ |
| 2021-07-08 06:40:50 |
SELECT CurDATE() + INTERVAL  11 HOUR
| CurDATE() + INTERVAL  11 HOUR |
| :---------------------------- |
| 2021-07-08 11:00:00           |

db<>fiddle here