BigQuery

【BigQuery】日付型データを月単位、年単位に変換するサンプル

この記事は約3分で読めます。

 

こんにちは、ミナピピン(@python_mllover)です。今回は自分用のBigqueryで日付のデータを月単位や年単位で集計したいときのメモになります。

 

データ準備

 

WITH sample_data AS(
    SELECT
     DATE('2022-12-31')AS date
    ,TIMESTAMP('2022-12-25 00:00:00')AS timestamp_at
    ,TIMESTAMP('2022-12-01 00:00:00', 'Asia/Tokyo')AS timestamp_jp
    ,TIMESTAMP('2021-11-01 00:00:00')AS timestamp_last
)

 

SELECT * FROM sample_data

 

<実行結果>

 

DATE_TRUNC()で日付/月/年の単位変換

 

SELECT
  # タイムスタンプを日付に変換 
  DATE(timestamp_at) AS Date_
  # 日付を月単位に変換する 
  ,DATE_TRUNC(DATE(timestamp_at), MONTH) AS MONTH_
  # 日付を年単位に変換する
  ,DATE_TRUNC(DATE(timestamp_at), YEAR) AS YEAR_
FROM
  sample_data
<実行結果>
注意点としてはDATE_TRUNC()はDATETIME型に対しては仕様できないので、DATE()などでDATE型に変換してやる必要があります。
またTIMESTAMPのまま単位を変換したい場合はTIMESTAMP_TRUNC()という関数が用意されています。
SELECT
  # タイムスタンプを日付に変換
  TIMESTAMP_TRUNC(timestamp_at, DAY) AS DAY_
  # タイムスタンプを月に変換
  ,TIMESTAMP_TRUNC(timestamp_at, MONTH) AS MONTH_
  # タイムスタンプを年に変換
  ,TIMESTAMP_TRUNC(timestamp_at, YEAR) AS YEAR_
FROM
sample_data
<実行結果>
ただこれは日付の列がTIMESTAMP型やDATE型であることが前提なので、文字型で格納されているような場合(例 20221101)に場合には使えないので注意してください


プログラミング・スクレイピングツール作成の相談を受け付けています!

クラウドワークス・ココナラ・MENTAなどでPython・SQL・GASなどのプログラミングに関する相談やツール作成などを承っております!

過去の案件事例:

  • Twitter・インスタグラムの自動化ツール作成
  • ウェブサイトのスクレイピングサポート
  • ダッシュボード・サイト作成
  • データエンジニア転職相談

これまでの案件例を見る

キャリア相談もお気軽に!文系学部卒からエンジニア・データサイエンティストへの転職経験をもとに、未経験者がどう進むべきかのアドバイスを提供します。


スポンサーリンク
/* プログラミング速報関連記事一覧表示 */
ミナピピンの研究室

コメント

タイトルとURLをコピーしました