0

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

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

这应该返回当前时间的时间戳,但它始终返回 null。TIMESTAMPADD工作得很好,我只有这个功能有问题。我已经通过 google 和 mysql 文档寻找这个问题的答案,但我找不到任何东西。

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

我的完整目标是一个查询,它返回从现在到下一个小时的 5 点还剩多少分钟。例如。如果是 1:30,我们的目标时间是 1:55,所以查询将返回 25

4

2 回答 2

0

如果你想要小时

SELECT CURTIME()

你发布的那个查询是荒谬的,或者更清楚你想要什么。

于 2013-09-07T18:43:00.567 回答
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)。

于 2013-09-07T19:14:14.590 回答