使用 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
我有一个 日期时间 字段,想在上午 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