如何在MySQL查询中定义时间戳值?

时间:2012-12-08 14:22:47

标签: mysql null timestamp

我有一个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也没有得到诀窍。

3 个答案:

答案 0 :(得分:0)

据我记得,添加时间戳和日期总是产生null,即使SELECT UNIX_TIMESTAMP() + interval 1 minute返回NULL。我想您需要做的就是将+INTERVAL 1 MINUTE更改为+60(秒)

答案 1 :(得分:0)

  

SELECT MAX(time)FROM table 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