我有一个日期时间字段,想在上午 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<>小提琴在这里