見出し画像

IT エンジニア日記 ~Presto DB で月末日付の取得~ -2024/06/20-

どうも。 clown です。

Presto DB で今月末日付を取得しなければならなくて、どうしたもんか悩んだのが今日。
Hive だったら `last_day` 関数があるから何も悩まなくていい。
Presto でも `last_day_of_month` 関数がある。
なのに、某サービスで使ってる Presto のバージョンでは `last_day_of_month` が無くて一発で取得できない。
どうしたものか。
閏年の面倒な計算はしたくないし、一発で月末を取得できないし。と調べてこんな感じで対応。

select
  date_format(
    date_parse(
      date_format(time + INTERVAL '1' month, '%Y-%m-01')
   , '%Y-%m-%d')
 - INTERVAL '1' day, '%Y-%m-%d')

これで月末は取得できる。
何してるか。
`time` カラムをベースに来月の初日を取得(月をプラス1)して、日付を1日マイナスする。こうすると閏年の面倒な計算もしなくていい。

掲げている使命

好きとスキルを駆使して、心身と経済が豊かな日本社会を創造する

いま、目の前で困っていることがある方のために僕の「好き」と「スキル」が何かのお役にたつかもしれません。
お困り事のある方は、コメントをいただけるとありがたいです。


支援のお願い

本記事は無料でお読みいただけますが、投げ銭形式にしているので、気に入ったらご購入いただけると嬉しいです。
また、下記リンクのご支援をいただけると励みになります。

素材引用元

アイコン

見出し


この記事が気に入ったらサポートをしてみませんか?