2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

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

Last updated at Posted at 2020-10-15

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

詳細はこちら

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


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

実行結果
スクリーンショット 2020-10-15 13.25.16.png

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


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

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

過去日付の場合は、


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

実行結果
スクリーンショット 2020-10-15 13.34.30.png

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


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

この場合、閏年を挟む場合(2月が29日になる)は1日考慮がずれちゃって、結果は以下のようになりました。
この点は注意必要なところ。
スクリーンショット 2020-10-15 13.40.52.png

まとめ

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

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

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?