将具有非数字字符的varchar转换为日期

时间:2019-04-10 13:47:10

标签: sql string-to-datetime

我有类似'Mon Sep 14 09:03:10 +0000 2015'的日期,但我没有成功将其转换为日期格式

已经尝试过to_date / to_timestamp和其他格式规范

例如:

select TO_TIMESTAMP_TZ('Mon Sep 14 09:03:10 +0000 2015') from dual;

我希望检索类似'DD/MM/YYYY'的东西。

3 个答案:

答案 0 :(得分:0)

这应该在Oracle中起作用:

select TO_TIMESTAMP_TZ('Mon Sep 14 09:03:10 +0000 2015', 'DY MON dd HH24:MI:SS TZHTZM YYYY')
from dual;

答案 1 :(得分:0)

在Oracle中:

select 
TO_CHAR(CAST(SUBSTR(TO_TIMESTAMP_TZ('Mon Sep 14 09:03:10 +0000 2015', 'DY Mon dd HH24:MI:SS TZHTZM YYYY'),1,9) AS DATE),'DD/MM/YYYY')
from dual;

输出:

14/09/2015

答案 2 :(得分:0)

好吧,Gen Wan解决方案工作得很好,最后我接近了解决方案,但是为了工作,我不得不将sqldevelopper语言更改为英语。如果您使用其他语言的Sql developer,则不会识别“这不是星期几”的时间戳格式。

根湾的解决方案:选择 TO_CHAR(CAST(SUBSTR(TO_TIMESTAMP_TZ('Mon Sep 14 09:03:10 +0000 2015','DY Mon dd HH24:MI:SS TZHTZM YYYY'),1,9)AS DATE),'DD / MM / YYYY ') 从双重;

非常感谢他!