mysql - 获取两个日期之间的记录,但有时它们可​​能为空

标签 mysql date

我在数据库中有 2 个日期:开始日期和结束日期(DATE 类型)。有时 end_date 可以为 null,这意味着如果 start_date <= CURRENT DATE 我也需要该记录。 我现在添加了两个日期的条件,如 NOW() >= of.start_date AND NOW() < of.end_date 。 如何获取 end_date = NULL (在同一查询中)的记录,这意味着如果 start_date <= NOW() (它们将来不会启动),它们始终处于事件状态? 也有可能未设置 start_date 和 end_date。在这种情况下,我也需要这些记录。我怎样才能在一个查询中实现这一目标?

最佳答案

使用coalesce()或显式放入NULL逻辑:

where now() >= of.start_date and (of.end_date >= now() or of.end_date is null)

关于mysql - 获取两个日期之间的记录,但有时它们可​​能为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30632479/

相关文章:

oracle - 减去通过时间戳自连接选择的值

json - 使用 Groovy JsonBuilder 时如何保留时区?

javascript - 在 JavaScript 计数器中使用主机日期

mysql - 如何在 SUM 生成的列上找到 MAX 值

mysql - 如何检查两个MySQL表中两个时间之间的差异?

php - 为什么我的提交按钮不能与 UPDATE 语句一起使用?

Python Mysqldb游标没有属性 'fetchAll'

c - C 中的日期比较

mysql - 从frm和ibd文件恢复表结构

java - 将带有时区的日期字符串转换为仅工作日和日期