日付操作のまとめ【PostgreSQL】
【頻出】日付操作のまとめ
日付操作のうち、特に頻出のものをまとめました。
1.現在日時の取得
select * from current_date; --"2020-06-11"
select * from current_time; --"22:00:00.000000+09"
select * from now(); --"2020-06-11 22:00:00.000000+09"
select * from current_timestamp; --"2020-06-11 22:00:00.000000+09"
--now()とcurrent_timestampの違いはありません
ここで詳しく説明しています → 現在日時、システム日時の取得
2.日付の書式設定
select * from to_char(now(),'YYYY/MM/DD'); --2020/04/01
select * From to_char(now(), 'HH:MI:SS'); --10:34:56(12時間表記)
select * from to_char(now(), 'HH24:MI:SS'); --22:34:56(24時間表記)
select * from to_char(now(),'YYYY/MM/DD HH24:MI:SS'); --2020/04/01 22:34:56
ここで詳しく説明しています → 日時、時刻の書式設定をする(yyyymmdd形式)
3.月、週、日、時刻を加算する
select current_date + cast('5 months' as INTERVAL); --"2020-11-12 00:00:00"
select current_date + cast('5 weeks' as INTERVAL); --"2020-07-17 00:00:00"
select current_date + cast('5 days' as INTERVAL); --"2020-06-17 00:00:00"
select current_date + cast('5 hours' as INTERVAL); --"2020-06-12 05:00:00"
select current_date + cast('5 minutes' as INTERVAL); --"2020-06-12 00:05:00"
select current_date + cast('5 seconds' as INTERVAL); --"2020-06-12 00:00:05"
ここで詳しく説明しています → 日付の加算、週の加算、月の加算
4.曜日を取得する
select date_part('dow',current_date); --0:日、1:月、2:火、3:水、4:木、5:金、6:土
ここで詳しく説明しています → 曜日を取得する
5.月末の日を取得する
select date(date_trunc('month',current_date) + '1 month' + '-1 day') --2020/6/30
ここで詳しく説明しています → 月末日を取得する(LAST_DAY)
6.こちらもおすすめ
日付であるかのチェック(IsDate) 西暦から和暦へ変換する 次の○曜日を取得