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



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

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

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

如果您想在今天上午 11:00 之前下订单,您可以使用:

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() + 间隔 11 小时 | |:---------------------------- | |2021-07-08 11:00:00 |

db<>小提琴在这里

最新更新