タイムスタンプの数学演算中にMySQLが何をしているのかを理解しようとしています。
結果として生じる問題の画像:
左側に開始と終了の2つのタイムスタンプがあり、開始から終了までの期間を見つける必要があるので、これを実行します。
終了-開始
私はいくつかの本当に奇妙な結果を得ていました。たった3時間の間に、その2〜3倍の量の結果が返ってきたことがわかります。
最初にUTCに変換すると、計算はうまくいきます。
左側のタイムスタンプでSQLが何をしているのか誰かが説明できますか?私は常に、すべてのタイムスタンプが内部でUTCであるという印象を受けてきました。そのため、min、max、lessなどは変換せずに機能します。
ありがとう!
コード:
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;