sql 用于检查事件过期的查询,它在两个单独的列中检查日期和时间

sql query to check for expiration of event, which checks for both date and time in two separate columns

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

那么有没有一种方法可以让我编写一个仅在 expiration_date==Current_Date 时才检查 expiration_time 的查询?

使用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()