MySQL时间戳差异结果

jn1kk

我有一个带有TIMESTAMP字段(lastHonored的表格

我跑了这个查询:

SELECT NOW(), lastHonored, 
    TIMESTAMPDIFF(SECOND, lastHonored, NOW()), NOW()-lastHonored 
FROM db.table

我得到结果:

NOW() | lastHonored | DIFF | SUBTRACT

2014-10-27 14:07:22 | 2014-10-26 19:49:51 | 65851 | 945771

其中DIFF是TIMESTAMPDIFF函数的结果,而SUBTRACT是NOW()-lastHonored表达式的结果

DIFF看起来不错,但是谁能告诉我该怎么NOW()-lastHonored算?这不是正确的数量级,我很困惑。

戈登·利诺夫

人们会认为NOW()会返回一个datetime或相似类型。但不是。由于某些历史原因,NOW()返回数字或字符串。引用文档

以“ YYYY-MM-DD HH:MM:SS”或YYYYMMDDHHMMSS格式返回当前日期和时间作为值,具体取决于该函数是在字符串上下文中还是在数字上下文中使用。该值以当前时区表示。

这意味着NOW()将根据上下文将其转换为值。-建议的数值范围内,所以NOW()是一个数字,其数字是YYYYMMDDHHMMSS。我的猜测是lastHonored得到相似的转换,所以结果是两个数字之间的差。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章