[備忘録]SQLで日付を年度に変える


4月始まり3月終わりで集計する必要があったので作成した。

  • 作成したSQL
SELECT my_date,
       CASE WHEN EXTRACT(MONTH FROM my_date) < 4 
            THEN FORMAT_DATE("%Y", DATE_SUB(my_date, INTERVAL 1 YEAR)) 
            ELSE FORMAT_DATE("%Y", my_date)
            END AS JP_cal
  FROM UNNEST(GENERATE_DATE_ARRAY("2020-01-01", "2020-12-31", INTERVAL 1 MONTH)) AS my_date
  • やっていること

FROMで、指定日から指定日までの日付を月ごとに用意し、
SELECTのCASEで、ある日付の月が4未満であれば、前年の年を
そうでなければ今年の年を出力する。

  • この後

この後は必要なテーブルにJOINして集計に使いました。