我试图弄清楚 MySQL 在时间戳的数学运算期间在做什么。
结果问题的图片:
你会在左边看到我有两个时间戳,开始和结束,我需要找到从开始到结束的持续时间,所以我这样做:
结束 - 开始
我得到了一些非常奇怪的结果。您可以看到仅 3 小时的持续时间,我得到的结果表明该数量是该数量的 2 到 3 倍。
当我首先转换为 UTC 时,数学计算结果很好。
谁能解释一下 SQL 对左边的时间戳做了什么?我一直认为所有时间戳都是 UTC 引擎盖下的,这就是为什么像最小值、最大值、小于等这样的东西可以在不转换的情况下工作。
谢谢!
代码:
select
min(timestamp) start,
max(timestamp) end,
max(timestamp) - min(timestamp) start_to_end,
unix_timestamp(min(timestamp)) startUTC,
unix_timestamp(max(timestamp)) endUTC,
unix_timestamp(max(timestamp)) - unix_timestamp(min(timestamp)) start_to_end_UTC
from post_snapshots group by permalink;