日付の取り扱いでよく使うもののオボエガキ
【1】今日の日付をnumericに20210121に形で格納したい場合
now()をcharでYYYYMMDD型に加工した後に、numberで8桁の数値に変えればよい
結果 to_number(to_char(now(), 'YYYYMMDD'),'99999999')
【2】8桁の数字20210121をタイムスタンプ型にしたい場合
結果 to_timestamp(to_char(’20210121’,'0000-00-00'),'YYYY-MM-DD'))
【3】2021-01-21 12:00:00.0 を 2021-01-21のタイムスタンプ型で扱いたい場合
結果 to_timestamp(to_char(’2021-01-21 12:00:00.0’,'YYYY-MM-DD'),'YYYY-MM-DD')
※【2】と【3】は同じタイムスタンプ型になっているので、
where等で 【2】-【3】> INTERVAL '3 days' 等で経過日数を条件としたり出来る。
to_charの扱いとして
to_char(1111,'99999') ⇒ ' 1111' 先頭に空白を含み、指定桁数無視
to_char(1111,'FM99999') ⇒ '1111' 空白なし指定桁数無視
to_char(1111,'00000') ⇒ ' 01111' 先頭に空白と含み指定桁数のゼロを付加
to_char(1111,'FM00000') ⇒ '01111' 空白なし指定桁数のゼロ付加
となる FMをつけないと格納できないようなDBもあり得る。
0 件のコメント:
コメントを投稿