在oracle中,指定的时区是否始终存储?
我一直在我们的系统中测试这个列,在某些地方,时间戳显示为:
26-FEB-09 11.36.25.390713 AM +13:00
但其他时候是:
26-FEB-09 11.36.25.390713 AM Pacific/Auckland
如果将值存储为前者,是否表示实际时区未存储?
我担心,因为如果未来日期仅存储偏移量,我们可能无法确定原始时区的实际时间,因为您可以确定时区的偏移量,但反之亦然.
谢谢
这很容易测试
create table foo ( tswtz TIMESTAMP WITH TIME ZONE); / insert into foo values (TO_TIMESTAMP_TZ ('21-FEB-2009 18:00:00 -5:00', 'DD-MON-YYYY HH24:MI:SS TZH:TZM')); insert into foo values (TO_TIMESTAMP_TZ ('21-FEB-2009 18:00:00 EST', 'DD-MON-YYYY HH24:MI:SS TZR')); select tswtz, extract(timezone_abbr from tswtz), extract(TIMEZONE_REGION from tswtz) from foo; TSWTZ EXTRACT(TIMEZONE_ABBRFROMTSWTZ) EXTRACT(TIMEZONE_REGIONFROMTSWTZ) ------------- ------------------------------- ---------------------------------------------------------------- 21-FEB-09 06.00.00.000000000 PM -05:00 UNK UNKNOWN 21-FEB-09 06.00.00.000000000 PM EST EST EST 2 rows selected
它存储你告诉它的内容.如果你告诉它一个偏移量,那么这个偏移对一个或多个时区来说可能是好的,那么为什么它只选择一个呢?