前回yyyymmdd形式のSTRING型日付データをDATE型に変換する方法をご紹介しました。
STRING型からDATE型に変換できるということはその逆のDATE型からSTRING型に変換することも可能なはずです。
今回はDATE型からyyyymmdd形式のSTRING型に変換する方法をご紹介します。
テストデータ準備
DATE型の日付データを用意しました。
こちらをyyyymmdd形式のSTRING型に変換しましょう。
![](https://tellingbook.com/wp-content/uploads/2023/08/image-7.png)
format_date関数を使う
STRING型からDATE型にするにはparse_date関数を使いましたが、今回はformat_date関数を使います。format_date関数はこのように書きます。
FORMAT_DATE('フォーマット要素', DATE '日付データ')
ここでもフォーマット要素を使うので、詳しい情報については公式リファレンスを確認ください。
![](https://tellingbook.com/wp-content/uploads/cocoon-resources/blog-card-cache/c193befae2b22183db2de37e2c6b61a9.png)
Format elements | BigQuery | Google Cloud
20230802はそれぞれ以下のフォーマット要素に対応しました。それでは実行してみましょう!
- 2023 → %Y
- 08 → %m
- 02 → %d
![](https://tellingbook.com/wp-content/uploads/2023/08/image-8.png)
SELECT
FORMAT_DATE('%Y%m%d', DATE '2023-08-02') AS STRING
yyyymmddの形式になりました。
format_date関数の戻り値はSTRING型のため20230802はSTRING型として扱えます。
これでDATE型からSTRING型、STRING型からDATE型へ自在に変換できるようになりましたね。
まとめ
DATE型からyyyymmdd形式のSTRING型に変換するformat_date関数について紹介しました。
format_date関数は実務でもよく使うでしょう。例えばパーティションカラムを設定せずテーブルパーティションを使うときはyyyymmdd形式にする必要があります。そんなときはformat_date関数が必須ですね。
自由自在に型変換ができると仕事の効率も上がりますね!