【BigQuery】日付の差分を計算する

DATE_DIFF関数

記法

date_diff(比較日①, 比較日②, 比較期間)

比較したい日付を比較日①と比較日②に当てはめる。

比較期間は、

  • DAY
  • WEEK
  • MONTH
  • YEAR

などの期間を指定する。
指定した機関の差分を返してくれる。
DAYを指定した場合、差分の日数が返される。

使い方

SELECT
    date_diff('2018-12-20', '2018-11-10', DAY) as diff_day,
    date_diff('2018-12-20', '2018-11-10', WEEK) as diff_week,
    date_diff('2018-12-20', '2018-11-10', MONTH) as diff_month

実行結果

diff_day diff_week diff_month
40 6 1

このように、日・週・月の差分を計算することができました。

留意点

 上記で実施した比較の日付を入れ替えた際に、
 一体どのような結果を返すでしょうか?  

SELECT
    date_diff('2018-11-10', '2018-12-10', DAY) as diff_day

実行結果

diff_day
-30

このように、指定する日付を逆にしても計算はできました。
しかし結果が少し異なりましたね。

通常、期間の差分を計算したいときには、
date_diff(新しい日付, 古い日付)で計算したほうが良さそうですね。

参考文献

BigQueryについて記載された参考書は、

ビッグデータ分析・活用のためのSQLレシピ

ビッグデータ分析・活用のためのSQLレシピ

Google BigQuery

Google BigQuery

この2冊が有名かと思います。

SQLの基本的なことがわかっており、
辞書的に上記の本を持っていくのは良いことかと思います。

一方で、SQLをこれから使い始める人には、
こちらの入門書がオススメです。

スッキリわかるSQL入門 第2版 ドリル222問付き! (スッキリシリーズ)

スッキリわかるSQL入門 第2版 ドリル222問付き! (スッキリシリーズ)

分かりやすい解説と演習問題がたくさんあるので、
非常に勉強がしやすい参考書になります。