使用包含'T'的时间戳更新时间戳列

时间:2014-07-08 17:47:59

标签: oracle timestamp

我有时间戳列:

MAX_LOAD_DATE_TS  TIMESTAMP(6)

我的load_datesdatetime之间使用T格式化。

2014-07-02T10:46:22

有没有办法在oracle上将其转换为合法timestamp

2 个答案:

答案 0 :(得分:3)

如果双重引用,您可以在格式字符串中嵌入文字:

select to_timestamp('2014-07-02T10:46:22', 'YYYY-MM-DD"T"HH24:MI:SS') from dual;

TO_TIMESTAMP('2014-07-02T10:46:22','YYYY-MM-DD"T"HH24:MI:SS')
-------------------------------------------------------------
02-JUL-14 10.46.22.000000000                                  

适用于to_date()以及to_timestamp(),而to_char()则适用于其他方式。

提到in the documentation

  

日期时间格式模型中的标点符号和字符文字

     

您可以在日期格式模型中包含这些字符:

     
      
  • 连字符,斜线,逗号,句号和冒号等标点符号
  •   
  • 字符文字,用双引号括起来
  •   
     

这些字符出现在与其相同位置的返回值中   它们出现在格式模型中。

答案 1 :(得分:1)

您可以使用相应的格式字符串以及CAST函数,如下所示:

SELECT 
        CAST(TO_DATE('2014-07-02T10:46:22', 'YYYY-MM-DD"T"HH24:MI:SS') AS TIMESTAMP(6)) AS timestamp_value
FROM table;

Related question