在Oracle SQL中转换日期时间格式

时间:2016-07-13 15:59:13

标签: sql oracle datetime

我有这种格式的日期:13-JUL-2016 14:38:39,969962 +00:00 我想要这种格式的日期DD/MM/YYYY HH:MM:SS 我使用了以下请求:

select to_date('13-JUL-2016 14:38:39,969962 +00:00',DD/MM/YYYY HH:MM:SS) from dual

但是我收到了以下错误:

  

16:57:51 ORA-01036:非法变量名称/编号

2 个答案:

答案 0 :(得分:0)

输入字符串太长而无法进入date,因此我认为您需要将其设为时间戳,然后to_char以获取所需的日期格式:

select to_char
       ( to_timestamp_tz('13-JUL-2016 14:38:39,969962 +00:00','DD-MON-YYYY HH24:MI:SS,FF TZH:TZM')
       , 'DD/MM/YYYY HH24:MI:SS' ) as converted_date
from dual;

CONVERTED_DATE
-------------------
13/07/2016 14:38:39

答案 1 :(得分:0)

您可以将输出格式化为char,并给出以下内容:

select
to_char(to_date(substr('13-JUL-2016 14:38:39,969962 +00:00',1,20), 'DD-MON-YYYY HH24:MI:SS'), 'DD/MM/YYYY HH24:MI:SS') as char_date_format
 from dual;

输出:

CHAR_DATE_FORMAT    
------------------- 
13/07/2016 14:38:39