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



我有一列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

相关内容

  • 没有找到相关文章

最新更新