Oracle '26-2月 -19 03.34.47.000000 下午' 字符串日期解析
Oracle数据库, 时间字段是varchar2类型, 存储了 '26-2月 -19 03.34.47.000000 下午' 格式(TIMESTAMP 数据类型)的字符串日期, 将其解析为yyyy-MM-dd hh24:mi:ss格式:
TIMESTAMP 数据类型:
DATE数据类型的主要问题是它粒度不能足够区别出两个事件哪个先发生。ORACLE已经在DATE数据类型上扩展出来了TIMESTAMP数据类型,它包括了所有DATE数据类型的年月日时分秒的信息,而且包括了小数秒的信息。如果你想把 DATE类型转换成TIMESTAMP类型,就使用CAST函数。
如: SELECT CAST(sysdate AS TIMESTAMP) FROM DUAL;
>> 26-2月 -19 03.38.45.000000 下午
解析方法一: 使用CAST()函数
CAST()函数可以进行数据类型的转换。
CAST()函数的参数有两部分,源值和目标数据类型,中间用AS关键字分隔。
语法:cast( 列名/值 as 数据类型 )
如: SELECT TO_CHAR(CAST(CAST('26-2月 -19 03.34.47.000000 下午' AS TIMESTAMP) AS DATE), 'yyyy-MM-dd hh24:mi:ss') FROM DUAL;
>> 2019-02-26 15:34:47
解析方法二: 使用TO_TIMESTAMP()函数
如: SELECT TO_CHAR(TO_TIMESTAMP('26-2月 -19 03.34.47.000000 下午', 'dd-mon-rr hh.mi.ss.ff am'), 'yyyy-MM-dd hh24:mi:ss') FROM DUAL;
>> 2019-02-26 15:34:47
随笔·完