gpt4 book ai didi

MySQL 如果两个日期和时间之间相差 2 小时

转载 作者:行者123 更新时间:2023-11-29 09:53:46 24 4
gpt4 key购买 nike

这是我试图解决的一个难题。

这是我的 table :

task_reminders
- id
- date
- time

我想要SELECT ALL 行,其日期和时间晚于当前(NOW)日期和时间(UTC)3 小时。这很困难,因为日期和时间列是分开的。

示例:

例如,如果当前日期和时间是 2019-01-20 08:30:00,我想选择日期和时间晚于该时间 3 小时的所有行(仅计算时间)。

2019-01-20 11:50:00 this would work
2019-01-20 11:10:00 this would work too

2019-01-20 10:00:00 would NOT work
2019-01-20 12:00:00 would NOT work

另一个例子:如果当前日期和时间是2019-01-19 11:20:00,这些将起作用,也将不起作用:

2019-01-20 02:50:00 this would work
2019-01-20 02:30:00 this would work too

2019-01-20 01:10:00 would NOT work
2019-01-20 03:45:00 would NOT work

这有点困难,因为DATETIME在我的数据库中是分开的。我该怎么做?谢谢!

最佳答案

由于您只想让时间彼此相差 3,因此您可以检查 2 个条件:

  1. HOUR(NOW()) 为 < 21,在这种情况下,日期应相同且 HOUR(time) = HOUR(NOW()) + 3 ;或
  2. HOUR(NOW()) >= 21,在这种情况下,日期应比 CURDATE() 多 1 且 HOUR(time) =HOUR(NOW()) - 21`

所以你的查询是:

SELECT *
FROM task_reminders
WHERE HOUR(`time`) = HOUR(NOW()) + 3 AND `date` = CURDATE() OR
HOUR(`time`) = HOUR(NOW()) - 21 AND `date` = CURDATE() + INTERVAL 1 DAY

注意

  1. 由于小时结束,无需在查询中包含相对于 21 的 HOUR(NOW()) 条件
  2. 我假设您的 datetime 列的数据类型分别为 DATETIME。<

关于MySQL 如果两个日期和时间之间相差 2 小时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54284252/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com