2017-02-13 116 views
0

我想转换以下字符串到datetime格式:找不到好日期格式:不可能解析

Sat Jan 14 13:55:34 CET 2017 

如果我们考虑到我的日期是在in_OutPut3变量,我想要使用以下格式模式

TO_DATE(in_OutPut3,'DY MON DD HH:MI:SS Z YYYY') 

我收到以下错误

系统未能解析日期格式:'DY MON DD HH:MI:SS Z YYYY'。

你知道这是什么日期格式吗?

+5

你的错误说格式是DY MON ** MM ** HH:MI:SS Z YYYY但你声称你的代码是DY MON ** DD ** HH:MI:SS Z YYYY。这些中的任何一个都不是字面意义上的代码,或者您错误地识别了错误位置。 (更不用说指定'MON'和'MM'的格式会非常奇怪) –

+0

你是对的,我改变了代码而不是错误。我的错误我纠正了这个帖子。 –

+0

您是否指的是Oracle函数来转换日期或Informatica函数? – BriteSponge

回答

0

这一个为我工作:

to_timestamp('Sat Jan 14 13:55:34 CET 2017','Dy Mon dd hh:mi:ss ZZ yyyy'); 

马尔科

+0

可能是在NLS中设置差异的一些问题,但上述内容对我而言并不适用于11g。 – BriteSponge

1

你必须嵌入在字符串中使用的TO_TIMESTAMP_TZ功能,所以尝试了时区。 TO_DATE不适用于时区。

以下是关于11g的作品;

select to_timestamp_tz('Sat Jan 14 13:55:34 CET 2017','DY MON DD HH24:MI:SS TZR YYYY') from dual 
+0

我也曾作为答案,但删除了它;这个问题似乎是关于Informatica的,它是自己的'to_date'函数,而不是Oracle的RDBMS'to_date'函数。时区的“Z”格式似乎适用于Informatica。 –

+0

你可能是对的。 。 。我的Informatica知识已近10年过时! – BriteSponge

0

在转换为Informatica日期类型时,您可以忽略时区。无论如何,Informatica在转换为Data数据类型后不会保留时区信息。放一些符号像下划线(_)匹配'CET'

TO_DATE(in_OutPut3, 'DY MON DD HH24:MI:SS ___ YYYY') 

另外,看起来像你有小时的军事格式。在这种情况下,你必须使用HH24。