Oracle日期和字符串转换to_date() 与 to_char() 区别

date转string

A是date格式直接转换为字符串格式即varchar2

to_char(A, 'yyyy-mm-dd hh24:mi:ss')

B是字符串varchar2格式先转换为date格式再转换为字符串格式

改变格式由yyyy-MM-dd改为yyyyMMdd

to_char(to_date(B, 'yyyy-MM-dd'),'yyyyMMdd')

string转date

前者为字符串,后者为转换日期格式,两个参数的格式必须匹配,否则会报错。
 

to_date('2018-01-09','yyyy-MM-dd')

to_date('2018-02-23 15:33:21','yyyy-MM-dd HH24:mi:ss')

string格式的to_timestamp数据如 "19-4月 -17 12.00.00.000000000 上午"转换为date格式。

to_date(to_char(to_timestamp(T1.CLNDSYRQ, 'dd-mon-rr hh.mi.ss.ff am'),'yyyyMMdd'),'yyyyMMdd')

date和timestamp之间的相互转换

to_char来转换timestamp-->date:

select to_date(to_char(systimestamp,'yyyy-mm-dd hh24:mi:ss'),'yyyy-mm-dd hh24:mi:ss') from dual

date -->timestamp:

select to_timestamp(to_char(sysdate,'yyyy-mm-dd hh24:mi:ss'),'yyyy-mm-dd hh24:mi:ss') from dual

java中转换

//String—>Date
String  time = “2018-01-09”;
SimpleDateFormat sdf= new SimpleDateFormat("yyyy-MM-dd");
Date date = sdf.parse(time);

//Date—>String
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");  
Date date=new Date();  
String str=sdf.format(date); 

 

你可能感兴趣的:(Oracle)