oracle字符串转为timestamp,将TZ字符串格式的TimeStamp转换为Oracle中的TimeStamp

推测固定的T和Z让你感到困惑,因为它们不是正常的元素。但the documentation说:

可以包括日期格式模型中,这些字符:

标点符号,如连字符,斜线,逗号,句号和冒号

字符文字,用双引号标记

所以你围住T和的Z双引号,因为"T"和"Z",在你的格式模型中。

如果你没有在时区interersted你可以使用the to_timestamp() function:

to_timestamp('2015-03-24T07:08:24.000Z', 'YYYY-MM-DD"T"HH24:MI:SS.FF3"Z"')

或者,如果你想有一个与时区,你可以使用the to_timestamp_tz() function,这将默认为当前会话时区(如您实际上并没有指定一个位置时,Z不被解释为祖鲁/ UTC):

to_timestamp_tz('2015-03-24T07:08:24.000Z', 'YYYY-MM-DD"T"HH24:MI:SS.FF3"Z"')

如果你有一个时区希望,并希望将其指定为UTC您可以强制与the from_tz() function:

from_tz(to_timestamp('2015-03-24T07:08:24.000Z', 'YYYY-MM-DD"T"HH24:MI:SS.FF3"Z"')), 'UTC')

要看到那些产生差异,指定一个时区的会话作为演示:

alter session set time_zone = 'America/New_York';

select to_timestamp('2015-03-24T07:08:24.000Z', 'YYYY-MM-DD"T"HH24:MI:SS.FF3"Z"') as no_tz,

to_timestamp_tz('2015-03-24T07:08:24.000Z', 'YYYY-MM-DD"T"HH24:MI:SS.FF3"Z"') as default_tz,

from_tz(to_timestamp('2015-03-24T07:08:24.000Z', 'YYYY-MM-DD"T"HH24:MI:SS.FF3"Z"'), 'UTC') as utc_tz

from dual;

NO_TZ

--------------------------------------------------

DEFAULT_TZ

--------------------------------------------------

UTC_TZ

--------------------------------------------------

24-MAR-15 07.08.24.000000000

24-MAR-15 07.08.24.000000000 AMERICA/NEW_YORK

24-MAR-15 07.08.24.000000000 UTC

我假设在Z是固定的值你因此总代表UTC;如果实际上在需要转换的值中获得不同的时区,那么您需要提取并应用这些值 - 这是可行的,但很难实现,除非您确实存在这种情况,否则不值得进入。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值