Big*_*igJ 1 mysql sql null dateadd
我有一个DATETIME值"some_date",在我的数据库中可以为null.当我尝试以下查询时,它不返回日期为null的那些行:
SELECT *
FROM tabel
WHERE DATE_ADD(some_date, INTERVAL some_seconds SECOND) < NOW()
Run Code Online (Sandbox Code Playgroud)
我可以编辑此查询,以便即使some_date为null,DATE_ADD()也会生成DATE吗?
您可以使用COALESCE将NULL日期转换为其他日期,例如:
select *
from table
where date_add(coalesce(some_date, now()), interval some_seconds second) < now()
Run Code Online (Sandbox Code Playgroud)
COALESCE返回其第一个非NULL参数:
COALESCE(value, ...)
返回列表中的第一个非NULL值,如果没有非NULL值,则返回NULL.
因此,您只需要决定使用哪个日期代替NULL some_date.
如果您对NULL的替换some_date将在过去足够远,测试将始终通过,那么您可以使用:
where some_date is null
or date_add(some_date, interval some_seconds second) < now()
Run Code Online (Sandbox Code Playgroud)
如果它总是会失败,那么:
where some_date is not null
and date_add(some_date, interval some_seconds second) < now()
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3765 次 |
| 最近记录: |