我们从用户那里收集订单,并在订单交付/取消之前给他们 3 天的付款窗口。我们希望每 8 小时向他们发送一次通知,以提醒他们付款。我们使用每小时 cron 发送通知。
我们如何获得在第 8/16/24 等小时内创建的所有订单?我们尝试了以下查询(简化)
SELECT * FROM t_orders where o_created > '2021-05-01 11:11:11' AND MOD( CEIL(('2021-05-02 12:12:12' - CAST(o_created AS DATETIME))/3600), 8 ) = 0
o_created
varchar 字段在哪里(不幸的是),2021-05-01 11:11:11
是日期前 3 天(我们接受 3 天的付款)并且2021-05-02 12:12:12
是当前日期时间。两个日期时间都来自 php,所以计算是有的,没有问题。
但这似乎不起作用。我们将在 3 天内收到所有订单。