Oracle 从带有时区的时间戳中提取本地小时
我试图从带有时区的时间戳中提取本地小时,但由于我不熟悉这种数据类型,因此得到了意想不到的结果 我希望下面每一行的输出都是22Oracle 从带有时区的时间戳中提取本地小时,oracle,oracle12c,timestamp-with-timezone,Oracle,Oracle12c,Timestamp With Timezone,我试图从带有时区的时间戳中提取本地小时,但由于我不熟悉这种数据类型,因此得到了意想不到的结果 我希望下面每一行的输出都是22 with my_data as( select to_timestamp_tz(ts, 'yyyy-mm-dd hh24:mi:ss tzh:tzm') as tsz from (select '2017-12-07 22:23:24 +' || lpad(level, 2, '0') || ':00' as ts from
with my_data as(
select to_timestamp_tz(ts, 'yyyy-mm-dd hh24:mi:ss tzh:tzm') as tsz
from (select '2017-12-07 22:23:24 +' || lpad(level, 2, '0') || ':00' as ts
from dual connect by level <= 10
)
)
select dbtimezone
,sessiontimezone
,tsz
,extract(hour from tsz)
from my_data;
为什么会发生这种情况?我需要做什么才能从带有时区的时间戳中提取本地时间?检查:
从具有时区值的日期时间提取时,返回的值以UTC为单位
如果您想获取本地时间,请使用“HH24”或从casttsz提取小时作为时间戳 在数据库中处理与时区相关的时态词需要经历多少困难,这真是令人惊讶。我希望有一天他们能把这一切简化。