【PostgreSQL】文字を日付に変換する、書式を設定する(cast、to_char、to_date)

2020年11月8日PostgreSQL構文

スポンサーリンク

文字を日付に変換する、書式を設定する

型の変換には「cast」を使用します。「as」の後ろに変換したい型を入れます。

--文字列を日付に変換する
cast( 日付に変換する文字列 as date )

 

文字列を日付に変換する

文字列を日付に変換する

--1.文字列「20190401」を日付に変換する 
select * from cast('20190401' as date);              --2019-04-01 

--2.文字列「20190401」をtimestampに変換する 
select * from cast('20190401' as timestamp);         --2019-04-01 00:00:00 

--3.文字列「20190401 123456」をtimestampに変換する 
select * from cast('20190401 123456' as timestamp);  --2019-04-01 12:34:56 

 

文字列変換+日付書式を設定する

--1.「20190401」をdateに変換し、「YYYY/MM/DD」形式へ変換する
select * from to_char(cast('20190401' as date), 'YYYY/MM/DD');  --2019/04/01 

--2.「20190401 123456」をtimestampに変換し、「HH24:MI:SS」形式へ変換する
select * from to_char(cast('20190401 123456' as timestamp), 'HH24:MI:SS'); --12:34:56

--3.「20190401 123456」をtimestampに変換し、「YYYY/MM/DD HH24:MI:SS」形式へ変換する
select * from to_char(cast('20190401 123456' as timestamp), 'YYYY/MM/DD HH24:MI:SS'); 
--2019/04/01 12:34:56

 

数値を日付に変換する

数値から日付に変換します。

数値→日付へ直接変換(cast)するとエラーとなるため、一度文字列にしてから、date型に変換しています。

--1.数値「20190401」を日付に変換する
select * From cast(cast(20190401 as character varying(8)) as date);  --2019-04-01

--2.数値「20190401123456」を日付と時間に変換する
select * From cast(left(cast(20190401123456 as character varying(14)),8) || ' ' || right(cast(20190401123456 as character varying(14)),6) as timestamp);
--2019-04-01 12:34:56