mysql timestampdiff总是返回null?

时间:2013-09-07 18:18:07

标签: mysql datetime

我正在使用mysql的14.4版本,我正在尝试执行以下查询:

SELECT TIMESTAMPDIFF(MINUTE, MINUTE(NOW()), NOW())

这应该返回当前小时的时间戳,但它总是返回null。 TIMESTAMPADD工作得很好,我只是遇到了这个功能的问题。我通过谷歌和MySQL文档找到了这个问题的答案,但我找不到任何东西。

有没有人知道出了什么问题?

我的完整目标是一个查询,它返回从现在开始到下一个小时的5分钟。例如。如果是1:30,我们的目标时间是1:55,那么查询将返回25

2 个答案:

答案 0 :(得分:0)

如果你想要小时

SELECT CURTIME()

您发布的查询是荒谬的,或者更清楚您想要的内容。

答案 1 :(得分:0)

我相信你正试图将当前的UNIX时间戳放到当前时间?如果是这样,为什么不明确一下呢?

SELECT UNIX_TIMESTAMP() - UNIX_TIMESTAMP() % 3600;

根据您的修改,您还可以计算下一小时前5分钟标记的差异,如下所示:

SELECT MINUTE( TIMEDIFF( 
    NOW(), 
    FROM_UNIXTIME( UNIX_TIMESTAMP() - UNIX_TIMESTAMP() % 3600 + 3600 - 5*60 )
) );

这只是一个概念验证查询;我还没有考虑将当前时间四舍五入(因为我不知道你是想要上升还是下降),也没有处理当前时间已经在下一个小时的5分钟内的边缘情况(例如1:59)。