【问题标题】:SQL - Select All Rows That Are 24 Hours Before TimestampSQL - 选择时间戳前 24 小时的所有行
【发布时间】:2021-11-24 05:47:31
【问题描述】:

我想制作一个系统,在实际约会前 24 小时发送约会提醒电子邮件。

我有这个:

SELECT * FROM appointments WHERE reminder_email_sent = 0 AND deleted = 0 AND datetime > NOW() - INTERVAL 1 DAY

datetime 是数据库中的 YYYY-MM-DD HH:MM 时间戳。

使用此查询,更晚的行(如2021-10-07 12:00)也会显示出来。我怎样才能让它只显示datetime 之前 24 小时的行?

【问题讨论】:

  • and datetime < now()?顺便说一句,datetime 是一个糟糕的列名称 - 您不应该将数据类型用作列名称,因为它没有 含义

标签: mysql sql date select


【解决方案1】:

由于您想在约会前 24 小时发送电子邮件,因此您应该使用的不是>,而是=,因为您要查找日期与第二天相同的录音。所以试试类似的东西:

SELECT * FROM appointments 
WHERE reminder_email_sent = 0 
AND deleted = 0 
AND DATE(datetime) = CURDATE() - INTERVAL 1 DAY

【讨论】:

    猜你喜欢
    • 2023-04-07
    • 2012-09-14
    • 2016-12-03
    • 2011-05-31
    • 2013-08-27
    • 1970-01-01
    • 1970-01-01
    • 2014-09-13
    • 2015-08-02
    相关资源
    最近更新 更多