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

 

                                                                                  随笔·完

  

posted @ 2019-02-26 15:53  壹玖玖肆  阅读(1222)  评论(0编辑  收藏  举报