Oracle:将varchar2转换为日期时间格式' yyyy-mm-ddThh:mm:ssZ'

时间:2016-03-22 21:19:49

标签: oracle datetime

我在varchar2中有一个日期格式' ddmmyyyy'我希望将其转换为格式' yyyy-mm-ddThh:mm:ssZ'其中最终变量具有日期时间格式。

例如,我有以下varchar2变量variable1

variable1 := '11092016';

我希望最终结果是:

variable2:='2016-09-11T00:00:00Z'

其中variable2不是varchar2,但有其他任何日期时间格式。

有人可以帮助我吗?

3 个答案:

答案 0 :(得分:0)

日期没有格式。通过将格式转换为字符串或客户端软件来应用格式。如果您只想将它​​作为日期,那么使用TO_DATE( value, 'DDMMYYYY' )(并且日期对象将时间组件设置为00:00:00)但是如果您希望它作为ISO8601格式的字符串:

Oracle安装程序

CREATE TABLE dates ( value ) AS
SELECT '20032016' FROM DUAL;

<强>查询

SELECT TO_CHAR(
         TO_DATE( value, 'DDMMYYYY' ),
         'YYYY-MM-DD"T"HH24:MI:SS"Z"'
       ) AS ISODate
FROM   dates;

<强>输出

ISODATE
--------------------
2016-03-20T00:00:00Z    

答案 1 :(得分:0)

使用以下代码:

Select to_char (current_timestamp,'yyyy-MM-dd"T"HH:mm:sss"Z"') from dual;

答案 2 :(得分:0)

在获得此结果的情况下,我使用了

使用Oracle源代码在datagrip上的TO_char(date,'YYYY-MM-DD“''T''” HH24:MI:SS。“ 000-0500”')。

Mu结果:2020-03-01'T'23:40:34.000-0500