📘
BigQueryで昨日の日付を取得するのにDATE_SUBを使う必要は無くなっていた件
結論
SELECT DATE_SUB(CURRENT_DATE('Asia/Tokyo'), INTERVAL 1 DAY)
ではなく
SELECT CURRENT_DATE('Asia/Tokyo')-1
で書けます。
理由
2020年10月14日のリリースで日付算術演算子が公式サポートされたためです。
BigQuery standard SQL now supports DATE arithmetics operators.
こんな感じでDATEとINT64の加減算ができるようになっています。月、年といったDAY単位以外の加減算に関してはまだDATE_ADD、DATE_SUBを使う必要があります。
date_expression + int64_expression
int64_expression + date_expression
date_expression - int64_expression
明日の日付の場合
SELECT CURRENT_DATE('Asia/Tokyo')+1
のように書くことができます。
BigQueryに慣れていない時に「BigQuery 日付 操作」とかで調べるとDATE_ADD、DATE_SUBを使った例がよくでてくるため、見落としがちかと思います。
頻繁にBigQueryは機能をアップデートしているため、リリースノートをまめにチェックするようにしたいですね。
Discussion