oracle怎么把字符串转换成日期 oracle日期转换问题
oracle怎么把字符串转换成日期
to_date函数
比如
select to_date(2015-02-03,yyyy-mm-dd) from dual
注意:2015-02-03格式要与yyyy-mm-dd一致
oracle日期转换问题
首先你要搞清楚to_date(a,b)函数的用法跟参数的含义,就是把b格式的字符串a转换成date类型,所以要求b的格式要跟a的实际格式一样
举个例子,t.time存的是2011.11.11,那后面的格式也要是yyyy.mm.dd才行
SQL> desc test
Name Type Nullable Default Comments
---- ---- -------- ------- --------
T DATE Y
SQL> insert into test(t) select to_date(20111111,yyyymmdd) from dual
1 row inserted
SQL> insert into test(t) select to_date(2011-11-11,yyyy-mm-dd) from dual
1 row inserted
SQL> insert into test(t) select to_date(2011.11.11,yyyy.mm.dd) from dual
1 row inserted
SQL> insert into test(t) select to_date(2011.11,yyyy.mm) from dual
1 row inserted
SQL>
Oracle字符串转换为日期格式
解决方法很多!你的这串字符串很难直接让数据库识别,但是好在它有规律,按照下面的方法应该可以转换过来。
现在假设表名为TBL,存储该列数据的字段名为DDATE,用下列的语句可以实现日期的转换
SELECTDDATE,
TO_DATE(SUBSTR(DDATE,8,4)||DECODE(SUBSTR(DDATE,1,3),
Feb,
01,
Jan,
02,
Mar,
03)||
LPAD(TRIM(SUBSTR(DDATE,5,2)),2,0)||
LPAD(TRIM(SUBSTR(DDATE,13,8)),8,0),YYYY-MM-DDHH:MI:SS)
FROMTBL
以上的部分你需要在DECODE部分将其余的9个月份的英文缩写和对应月份补齐即可。