我必须将SYSDATE
日期转换为特定的日期格式。该格式必须是这样的:'2016-11-23T15:12:48Z'
。我认为这是一个奇怪的日期格式,但是是我的要求。Oracle中的时区日期格式
这必须是发送Web服务消息的日期。
在Oracle(12c或11g)中,我有一些函数可以用这种特定格式来转换日期吗?谢谢。
我必须将SYSDATE
日期转换为特定的日期格式。该格式必须是这样的:'2016-11-23T15:12:48Z'
。我认为这是一个奇怪的日期格式,但是是我的要求。Oracle中的时区日期格式
这必须是发送Web服务消息的日期。
在Oracle(12c或11g)中,我有一些函数可以用这种特定格式来转换日期吗?谢谢。
这将使你在评论中提及了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;
由于"Z" in the timestamp format you're after means "This is in UTC",你应该首先确认您的sysdate以UTC格式返回。您可以通过使用SYSTIMESTAMP做到这一点,sys_extract_utc()像这样:
select to_char(sys_extract_utc(systimestamp), 'yyyy-mm-dd"T"hh24:mi:ss"Z"') dt_as_utc
from dual;
DT_AS_UTC
--------------------
2016-11-28T10:33:49Z
[TO_CHAR()](https://docs.oracle.com/database/121/SQLRF/functions216.htm#SQLRF06129) - 这是不是一个“怪异”的格式。这是一个ISO格式,其中包括时区 –
如果我记得正确它是ISO-8601标准,但是,有些人甚至对公制投诉:) –