日付データ/文字列データの変換(TO_DATE、TO_CHAR、TO_TIMESTAMP)

http://oracle.se-free.com/dml/07_todate.html

日付データ/文字列データの変換には、TO_DATE関数、TO_CHAR関数、TO_TIMESTAMPを使用する

TO_CHAR(日付データ, 日付書式) 日付データ を日付書式 の形式の文字列に変換する
TO_DATE(文字列, 日付書式) 日付書式 の形式で指定した、文字列 をDATE型に変換する
TO_TIMESTAMP(文字列, 日付書式) 日付書式 の形式で指定した、文字列 をTIMESTAMP型に変換する
ORACLE9iより使用可能
  ※TO_CHAR関数の代わりにTO_NCHAR関数を使用すると、NVARCHAR2型のデータが返されます。

日付書式
YYYY 西暦年 4桁 
YY 西暦年 下2桁
RRRR 'YYYY'と同じ
RR 'YY'と同じ
MM 月(01~12)
DD 日(1~31)
DDD 年の始めからの日数(1~366)
HH
HH(12)
時間(1~12)
HH(24) 時間(1~24)
MI 分(0~59)
SS 秒(0~59)
SSSSS 秒(午前0時からの経過秒数)
FF[1-9] ミリ秒 桁数を指定する。3桁の場合はFF3、桁数が無い場合は、システムのデフォルト桁数となる。
D 日曜日を1とした数値化した曜日(月曜日:2 火曜日:3・・・・)
DY 曜日を漢字に変換 日、月、火・・・・・
E 元号の省略形 平成:H、昭和:S、大正:T
EE 元号 平成、昭和、大正、・・・・
EYY 和暦年の省略形 平成10:H10、昭和25:S25 ・・・・ 
EEYY 和暦年 平成10、昭和25・・・・
和暦変換する場合は、変換関数の第3引数に下記指定をする。
   'nls_calendar = ''Japanese Imperial'''


例1) システム日付(DATE型)を、年/月/日 時(24時):分:秒 に変換する(TO_CHAR)
select
 to_char(sysdate,'yyyy/mm/dd hh24:mi:ss')
from dual;

結果は、2006/03/29 20:27:05 のようになります


例2) システム日付(TIMESTAMP型)を、年/月/日 時(24時):分:秒.ミリ秒 に変換する(TO_CHAR)
select
 to_char(systimestamp,'yyyy/mm/dd hh24:mi:ss.ff3')
from dual;

結果は、2006/03/29 21:54:31.078 のようになります


例3) 日付書式”年/月/日 時(24時):分:秒” の文字列をDATE型に変換する(TO_DATE)
insert into test_table
 values( to_date('2006/02/21 15:35:23','yyyy/mm/dd hh24:mi:ss') );


例4) 日付書式”年/月/日 時(24時):分:秒” の文字列をTIMESTAMP型に変換する(TO_TIMESTAMP)
insert into test_table
 values( to_timestamp('2006/02/21 15:35:23.556','yyyy/mm/dd hh24:mi:ss.ff3') );


例5) システム日付(DATE型)を、和暦変換する(TO_CHAR)
select
 to_char(sysdate,'eeyy/mm/dd hh24:mi:ss','nls_calendar = ''Japanese Imperial''')
from dual;

結果は、平成18/03/30 00:59:29 のようになります


例6) 和暦日付’平成17/10/15’から西暦に変換する
select
 to_char(to_date('平成17/10/15','eeyy/mm/dd','nls_calendar = ''Japanese Imperial'''),'yyyy/mm/dd')
from dual;

結果は、2005/10/15 になります
和暦から西暦に変換する場合は、DATE型に変換してから、西暦変換します

スポンサード リンク

你可能感兴趣的:(Timestamp)