Oracle SQL-如何使用to_date将日期如2020-06-03T17:39:26Z格式化为日期

时间:2020-06-03 18:28:12

标签: sql oracle

我正在尝试使用to_date将2020-06-03T17:39:26Z这样的格式的日期字符串转换为Oracle SQL中的日期。我尝试了to_date('2020-06-03T17:39:26Z', 'yyyy-mm-ddThh24:mi:ssZ'),但这没有用。这个日期格式是什么,似乎有很多问题。但是我找不到关于Oracle SQL的答案?如何忽略T和Z,或者这在某种程度上很重要?基本上我该如何将其转换为日期?

1 个答案:

答案 0 :(得分:1)

数据值中的

T和Z将违反类型转换,您需要使用双引号将其格式化

select to_date('2020-06-03T17:39:26Z', 'YYYY-MM-DD"T"HH24:MI:SS"Z"') from dual;

您还可以使用子字符串来获取数据值并进行转换,

select to_date(substr('2020-06-03T17:39:26Z', 0, 10), 'YYYY-MM-DD HH24:MI:SS') from dual;

如果需要时间戳记,请在下面使用

select to_date(substr('2020-06-03T17:39:26Z', 0, 10)||substr('2020-06-03T17:39:26Z', instr('2020-06-03T17:39:26Z', 'T')+1,8), 'YYYY-MM-DD HH24:MI:SS') from dual;