日付操作のまとめ【PostgreSQL】

2021年8月22日未分類

【頻出】日付操作のまとめ

日付操作のうち、特に頻出のものをまとめました。

 

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)  西暦から和暦へ変換する  次の○曜日を取得