我有一个带有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] 删除。
我来说两句