【问题标题】:sql query to check for expiration of event, which checks for both date and time in two separate columns用于检查事件到期的 sql 查询,该查询在两个单独的列中检查日期和时间
【发布时间】:2022-01-23 09:44:17
【问题描述】:

我们有一个事件数据库,expiration_date 和 expiration_time 每个都有一个单独的列。目前,我们检查到期日期是否小于当前日期,然后我们不会向用户显示这些事件。我们目前遇到的问题是,如果活动在上午 12 点之后结束,那么活动仍然会显示一整天。

那么有没有一种方法可以编写一个查询,仅当 expire_date==Current_Date 时才检查 expire_time?

【问题讨论】:

  • 为什么日期和时间在不同的列中?
  • 不管怎样,结合日期和时间,和NOW()比较
  • WHERE TIMESTAMP(expiration_date, expiration_time) >= CURRENT_TIMESTAMPdev.mysql.com/doc/refman/8.0/en/…

标签: php mysql sql web


【解决方案1】:

使用OR 合并这两种情况。

SELECT columns
FROM yourTable
WHERE expiration_date > CURRENT_DATE() OR 
    (expiration_date = CURRENT_DATE() AND expiration_time >= CURRENT_TIME())

或者您可以结合日期和时间并与NOW()进行比较

WHERE TIMESTAMP(expiration_date, expiration_time) >= NOW()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-25
    • 2016-09-20
    • 2011-11-10
    • 2017-04-25
    • 1970-01-01
    • 2012-11-13
    相关资源
    最近更新 更多