日付操作
redshift(おそらく postgresql も同じ)で日付操作することってありますよね。前月の末尾ってどうやったらとれるんでしょうか。
結論
ずばりこれです。
dateadd(days, -1, date_trunc('month', current_date));
date_trunc
に month
を指定して日付情報を落として1日を表し、その日に対して dateadd
で -1
して1日引く。これで、前月の末尾を datetime 形式で取得できる。
さて使ってみましょう。例えば2017年1月19日現在下記を実行すると
redshift=# select dateadd(days, -1, date_trunc('month', current_date));
このように結果が返ってきます。
date_add
---------------------
2016-12-31 00:00:00
(1 row)
どうぞ。