徒然なるままにデータサイエンス

データアナリストの実務で得た知識を書いていきます

【BigQuery】#1 Time Stampデータを日付形式に変換する【組み合わせ分析】

TIME STAMPをYYYY-MMのフォーマットに変換する

データ内にある「time_stamp」列をYYYY-MMの表示形式に変換します。
SQLのコードは下記です。

FORMAT_DATE("%Y-%m", DATE(TIMESTAMP_SECONDS(time_stamp)))

FORMAT_DATE関数で指定したフォーマットにデータを変換します。
ここでは"%Y-%m"のフォーマットを指定し「YYYY-MM」で表記されるようにしています。
"%Y-%m"の部分を変更することにより、日付の表記を変更することができます。

日付変換フォーマット例
  • "%Y" = 4桁の年(2022)
  • "%y" = 2桁の年(22)
  • "%M" = 英語の月名(JULY)
  • "%m" = 2桁の月(07)
  • "%d" = 2桁の日付(01)
  • "%k" = 24時間表記の時間(24)
  • "%i" = 2桁の分(01)
  • "%s" = 2桁の秒(01)

    今回使用するデータにある「time_stamp」は秒までのタイムスタンプのため、関数はTIMESTAMP_SECONDSを使います。
    もしミリ秒まで情報が含まれる場合は、TIMESTAMP_MILLISを使います。

    BigQueryでのクエリ結果

    それではBigQuery上で実際にtime_stamp列をYYYY-MM表記に変換します。
    クエリ
SELECT  
  time_stamp,
  FORMAT_DATE("%Y-%m", DATE(TIMESTAMP_SECONDS(time_stamp))) AS YYYYMM,
  FORMAT_DATE("%Y-%m-%d", DATE(TIMESTAMP_SECONDS(time_stamp))) AS YYYYMMDD
FROM 
  `table_name`
GROUP BY 
  time_stamp
ORDER BY 
  time_stamp ASC

今回使用するフォーマットはYYYY-MMのみですが、日付フォーマットの変換の違いをみるためにYYYY-MM-DDバージョンもクエリに含みました。

クエリ実行結果

f:id:funi_ds:20220309145827p:plain
time_stampをYYYY-MMやYYYY-MM-DD形式に変換することができました。

次回からはID毎にfacilityの組み合わせを作成していきます。