我有一列timestamp
类型。我想获取特定条件的最新可用时间并为其添加 1 分钟。如果条件导致零记录,我得到NULL
.为了正确操作它,我需要将此NULL
视为默认值/最小/零时间戳。而且我不确定如何在SQL查询中(而不是在字段定义中)完成此操作。我试过这个:
SELECT COALESCE((SELECT MAX(`time`) FROM `table` WHERE false), 0) + INTERVAL 1 MINUTE
SELECT COALESCE((SELECT MAX(`time`) FROM `table` WHERE false), TIMESTAMP('0000-00-00 00:00:00')) + INTERVAL 1 MINUTE
SELECT COALESCE((SELECT MAX(`time`) FROM `table` WHERE false), TIMESTAMP('1970-01-01 00:00:00')) + INTERVAL 1 MINUTE
所有返回NULL
。使用TIMESTAMPADD
和UNIX_TIMESTAMP也没有解决问题。
我所知,添加时间戳和日期总是产生 null,即使SELECT UNIX_TIMESTAMP() + interval 1 minute
返回 NULL
.我想您需要做的就是将+INTERVAL 1 MINUTE
更改为+60
(秒)
从 FALSE 中选择 MAX(
time
table
对我来说,这似乎是一个糟糕的陈述,因为"WHERE false"永远不会返回任何内容(即 NULL)......您是否缺少像"WHERE column=false"这样的列?
你应该尝试这样的事情:
SELECT [whatever] FROM [wherever] WHERE EXISTS([the timestamp query])
看这里: http://dev.mysql.com/doc/refman/5.0/en/exists-and-not-exists-subqueries.html