2016-11-28 130 views
0

我必须将SYSDATE日期转换为特定的日期格式。该格式必须是这样的:'2016-11-23T15:12:48Z'。我认为这是一个奇怪的日期格式,但是是我的要求。Oracle中的时区日期格式

这必须是发送Web服务消息的日期。

在Oracle(12c或11g)中,我有一些函数可以用这种特定格式来转换日期吗?谢谢。

+1

[TO_CHAR()](https://docs.oracle.com/database/121/SQLRF/functions216.htm#SQLRF06129) - 这是不是一个“怪异”的格式。这是一个ISO格式,其中包括时区 –

+1

如果我记得正确它是ISO-8601标准,但是,有些人甚至对公制投诉:) –

回答

3

这将使你在评论中提及了ISO-8601:

select to_char(systimestamp,'YYYY-MM-DD"T"hh24:mi:sstzh:tzm') isodt from dual; 

如果你真的想Z而不是时区,你可以使用:

select to_char(cast(systimestamp as timestamp) at time zone 'UTC', 
       'yyyy-mm-dd"T"hh24:mi:ss"Z"') 
    from dual; 
+0

谢谢。而已!!! – milheiros

+0

的'在ISO-8601 Z'后脚本表示时间戳是UTC时区(祖鲁时间)。如果'SYSDATE'不是UTC,则需要将其转换为正确的时区。 – MT0

+0

@ MT0谢谢。我不知道。我已经添加到UTC来修改它。 – Kacper