我有一个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也没有得到诀窍。
答案 0 :(得分:0)
据我记得,添加时间戳和日期总是产生null,即使SELECT UNIX_TIMESTAMP() + interval 1 minute
返回NULL
。我想您需要做的就是将+INTERVAL 1 MINUTE
更改为+60
(秒)
答案 1 :(得分:0)
SELECT MAX(
time
)FROMtable
WHERE false
对我而言,这似乎是一个糟糕的陈述,因为" WHERE false"将永远不会返回任何内容(即为NULL)...您是否错过了像" WHERE column = false"?
的列答案 2 :(得分:0)
你应该尝试这样的事情:
SELECT [whatever] FROM [wherever] WHERE EXISTS([the timestamp query])
请看这里:http://dev.mysql.com/doc/refman/5.0/en/exists-and-not-exists-subqueries.html