bigqueryで日付の加減算が算術演算子でできるようになった!


タイトルの通りですが、以下のようなコードで未来や過去の日付を指定できるようになったようです。
これはまじありがたい!良アップデート!

詳細はこちら

未来日付を求める場合(DATA_ADDの代替)


SELECT '2020-10-15' + 1 AS next_date

実行結果

アップデート前のコードはこんな感じ。


SELECT DATE_ADD(DATE "2020-10-15", INTERVAL 1 DAY) as next_date

過去日付を求める場合(DATA_SUBの代替)

過去日付の場合は、


SELECT '2020-10-15' - 365 AS last_year

実行結果

アップデート前のコードはこんな感じ。


SELECT DATE_SUB(DATE "2020-10-15", INTERVAL 1 YEAR) as last_year;

この場合、閏年を挟む場合(2月が29日になる)は1日考慮がずれちゃって、結果は以下のようになりました。
この点は注意必要なところ。

まとめ

関数を使うのって、その環境で一定以上の慣れが必要なので、たまーに触る。ぐらいだとすぐ忘れちゃうので、使うときにググるか、コードをメモっておいてコピペする。というパターンが多いのではと思いますが、今回のアップデートのおかげで感覚的に日付の加減算できるので、まじありがたい限りです!

ただし、過去日付のところで触れましたが、INTERVALでYEARを指定した場合で、閏年を挟む場合の考慮は考える必要がありました。結果的に、日数指定したら1日ずれてしまう事件とかの罠もあるため、テストコードで使う場合は、算術演算子で利用。本番で稼働させる場合は、DATA_ADDやDATE_SUBなどの関数を利用する方が良いのかなとも思いました。