コード日進月歩

しんくうの技術的な小話、メモ、つれづれ、など

BigQueryで実行時の内容をYYYYMMDDで取得する方法

割とかんたんな部類なんだけど、毎度ググってしまうのでメモ的なもので。

前提条件

  • STANDARD SQLです(記載タイミングでレガシーのほうを使っているほうが稀かなと思いますが念の為)

やり方

FORMAT_TIMESTAMP("%Y%m%d" ,CURRENT_TIMESTAMP())

動作原理

CURRENT_TIMESTAMP() を使うと実行時時点の TIMESTAMP 型の情報が取得できるのでそれを FORMAT_TIME_STAMP で整形しているだけ。

なお、括弧書きを抜いた `CURRENT_TIMESTAMP でも動きはするのだが、current_timestampという名前のカラム名がある場合は意図した挙動にならない恐れがあるため明示的に書いている。

応用

定時処理などの場合は前日の情報が欲しくなる場合があるので、その場合は減産してあげればいい。

FORMAT_TIMESTAMP("%Y%m%d" ,DATE_SUB(CURRENT_TIMESTAMP(),INTERVAL 1 DAY))

参考リンク