mysql timestampdiff是否总是返回null?

mysql timestampdiff是否总是返回null?,mysql,datetime,Mysql,Datetime,我正在使用mysql的14.4版,我正在尝试执行以下查询: SELECT TIMESTAMPDIFF(MINUTE, MINUTE(NOW()), NOW()) 这应该返回当前小时的时间戳,但它总是返回nullTIMESTAMPADD工作正常,只是这个函数有问题。我已经通过google和mysql文档寻找了这个问题的答案,但我什么也找不到 有人知道出了什么问题吗 我的全部目标是一个查询,返回从现在到下一个小时的5分钟还剩多少分钟。例如如果是1:30,那么我们的目标时间是1:55,因此如果需要小

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

SELECT TIMESTAMPDIFF(MINUTE, MINUTE(NOW()), NOW())
这应该返回当前小时的时间戳,但它总是返回null
TIMESTAMPADD
工作正常,只是这个函数有问题。我已经通过google和mysql文档寻找了这个问题的答案,但我什么也找不到

有人知道出了什么问题吗


我的全部目标是一个查询,返回从现在到下一个小时的5分钟还剩多少分钟。例如如果是1:30,那么我们的目标时间是1:55,因此如果需要小时,查询将返回25

SELECT CURTIME()

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

我相信您正在尝试将当前UNIX时间戳限定为当前时间?如果是的话,为什么不明确一点呢

选择UNIX\u TIMESTAMP()-UNIX\u TIMESTAMP()%3600

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

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

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

你想要现在和现在之间的分钟差吗?我还相当确定“版本14.4”引用MySQL版本以外的内容。该查询生成
错误1292:不正确的日期时间值
,并引用第二个参数。函数规格是TIMESTAMPDIFF(单位,datetime_expr1,datetime_expr2)。为什么它是荒谬的?让我告诉你我的全部目标。我的全部目标是一个查询,返回从现在到下一个小时的5分钟还剩多少分钟。例如如果是1:30,我们的目标时间是1:55,那么查询将返回25My full goal,它返回从现在到下一个小时的5分钟的剩余时间。例如如果它是1:30,我们的目标时间是1:55,那么查询将返回25,所以在下一个小时开始前的5分钟,有一点比我最初说的要多?如果是1:55会发生什么?1:59?这是一个很好的观点。我可以通过案例陈述来解决这个问题。我真的不明白为什么我的原始查询返回null。如果我做了类似于selecttimestampdiff(MINUTE,5,NOW())的事情,它就可以正常工作,只有在middle@yemista:正如我在前面对您的问题的评论中所指出的,TIMESTAMPDIFF与TIMESTAMPADD不同。