MySQLのTIMESTAMPDIFF()関数を使うと、日時同士の差分計算がしやすくて便利

masyus-work-eyecatch-mysql

トラブルシューティング調査で、MySQLに構築したとあるテーブルのcreatedとmodifiedの差分計算をしたい時がよくある。他にもcreatedとNOW()の差分を出したい時なんかもあるのだけど、そんな時に便利な関数を見つけたので紹介。検証したMySQLバージョンは5.7.26。

TIMESTAMPDIFF()を検証するためのデータ準備

まずはデータ準備から。今回はusersテーブルを作っておく:

続いて、分析したいデータを準備:

これで準備完了。

TIMESTAMPDIFF()の結果検証

3つのSELECT文を準備しつつ、結果を見てみる:

1.日時差分を秒単位で算出

2.日時差分を分単位で算出

3.日時差分を時単位で算出

TIMESTAMPDIFF()で他に使える単位指定

DAY, WEEK, MONTH, YEARなど。マイクロ秒計算もいけるらしい。ほうほう。

 

参考)

http://bashalog.c-brains.jp/14/02/28-150000.php