トッカンソフトウェア

PostgreSQL SQL

PostgreSQLのSQLで気付いたことをメモしておきます


文字列関連

文字列の結合
				
select 'aaa' || 'bbb'

→aaabbb

			
空白削除
				
select '"' || trim('  abc  ') || '"'

→"abc"

			
				
select '"' || rtrim('  abc  ') || '"'

→"  abc"

			
				
select '"' || ltrim('  abc  ') || '"'

→"abc  "

			
文字列抜き出し
				
select substr('abcdef',2,3)

→bcd

			
				
select right('abcdef', 3)

→def

			
				
select left('abcdef', 3)

→abc

			
ゼロ埋め
				
select lpad('123', 6, '0')

→000123


			
				
select rpad('123', 6, '0')

→123000


			
大文字小文字変換
				

select upper('abc')

→ABC

select lower('ABC')

→abc

			

文字列返還

数値→文字列
				

--to_charで文字列に変換。変換形式の頭にFMを付ける
select '"' || to_char(123,'FM9999') || '"'

→"123"

--FMを付けないと頭に半角スペースが入る
select '"' || to_char(123,'999') || '"'

→" 123"

--0を指定すると0埋めになる
select '"' || to_char(123,'FM0000') || '"'

→"0123"

--to_charを使わなくても文字列と結合すると文字列になる
select '"' || 999 || '"'

→"999"


			
文字列→数値
				
to_numberで文字列から数値に変換
select to_number('123', '9999')

→123

マイナスもそのまま変換
select to_number('-123', '999')

→-123

変換フォーマットの指定が足りないとすべて変換されない
select to_number('123', '99')

→12

小数点はドット
select to_number('123.4', '999.9')

→123.4

カンマはカンマ
select to_number('1,234', '9,999')

→1234


			

日時

日付取得、日時取得
				
select CURRENT_DATE

→日付取得

select CURRENT_TIMESTAMP

→日時取得


			
日付、日時→文字列
				
select to_char(CURRENT_DATE, 'YYYYMMDD')

select to_char(CURRENT_TIMESTAMP, 'YYYYMMDDHH24MISS')


			
文字列→日付、日時
				

select to_date('20230730', 'YYYYMMDD')

select to_timestamp('20230730162742', 'YYYYMMDDHH24MISS')


			
日付、日時計算
				

select to_date('20230730', 'YYYYMMDD') + interval '3 day'
→2023/08/02 0:00:00

select to_date('20230730', 'YYYYMMDD') + interval '3 month'
→2023/10/30 0:00:00

select to_date('20230730', 'YYYYMMDD') + interval '3 year'
→2026/07/30 0:00:00

select to_date('20230730', 'YYYYMMDD') + interval '3 hour'
→2023/07/30 3:00:00

select to_date('20230730', 'YYYYMMDD') + interval '3 minute'
→2023/07/30 0:03:00

select to_date('20230730', 'YYYYMMDD') + interval '3 second'
→2023/07/30 0:00:03

			

ページのトップへ戻る