这可能很容易,但我似乎无法理解它。我的用户表有一个next_payment DATETIME列,每个月都有一个更新。我想要一个查询来获取所有用户的next_payment DATETIME在当前日期时间的一天内。
我试过这样的事情,但它也让我的用户在15分钟内完成了他们的next_payment。不好
SELECT * FROM users WHERE next_payment >= NOW() AND next_payment <= NOW() + INTERVAL 1 DAY
我也尝试过这样的事情,但这并不起作用,因为它给了我所有用户像2或3个月前一样具有next_payment日期时间(不好)。
SELECT * FROM users WHERE next_payment <= NOW() + INTERVAL 1 DAY
提前感谢您提供任何帮助
答案 0 :(得分:0)
需要Cast
日期时间字段,以便您可以包含该期间内的所有数据并使用between
SELECT * FROM
users
WHERE
cast(next_payment as date)
between cast(NOW() as date)
AND cast(NOW() + INTERVAL 1 DAY as date)
答案 1 :(得分:0)
我会用:
SELECT * FROM users
WHERE TIMESTAMPDIFF(HOUR,NOW(),next_payment) <= 24
答案 2 :(得分:0)