我在数据库中有两个日期:start_date和end_date(类型为DATE)。有时end_date可以为null,这意味着如果start_date< = CURRENT DATE,我也需要该记录。
我现在添加了两个日期的条件设置为NOW() >= of.start_date AND NOW() < of.end_date
。
如何获取end_date = NULL(在同一查询中)的记录,这意味着如果start_date&lt; = NOW()(他们将来不会开始),它们总是处于活动状态?
还有可能既没有设置start_date也没有设置end_date。在这种情况下,我也需要这些记录。如何在一个查询中实现此目的?
答案 0 :(得分:1)
使用coalesce()
或明确地放置NULL
逻辑:
where now() >= of.start_date and (of.end_date >= now() or of.end_date is null)