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

Transform varchar with non numeric char to date

我有像'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' 的内容。

这应该适用于 Oracle:

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

在 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

好的,Gen Wan 解决方案工作得很好,最后我接近了解决方案,但我不得不将我的 sqldevelopper 语言更改为英语才能工作。如果您使用其他语言的 Sql 开发人员,它将无法识别时间戳格式 answearing "this is not a valid day of the week".

Gen Wan 的解决方案: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) 作为日期),'DD/MM/YYYY') 来自双重;

非常感谢他!