0

我有一个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。使用TIMESTAMPADDand UNIX_TIMESTAMP 也没有成功。

4

3 回答 3

0

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

于 2012-12-08T14:35:36.567 回答
0

timetable哪里选择 MAX( ) 错误

对我来说,这似乎是一个糟糕的陈述,因为“WHERE false”永远不会返回任何东西(即为 NULL)......您是否缺少像“WHERE column=false”这样的列?

于 2012-12-08T14:37:55.453 回答
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

于 2012-12-08T14:41:52.983 回答