TIMESTAMP WITH LOCAL TIME ZONE类型:
Oracle语法:
TIMESTAMP [(fractional_seconds_precisions)] WITH LOCAL TIME ZONE
fractional_seconds_precisions的用法与TIMESTAMP数据类型一致, 该数据类型在TIMESTAMP WITH TIME ZONE的基础上又有进一步. 在用户提交时间给数据库时, 该类型会转换成数据的时区来保存数据, 即在数据库中保存的时间是数据库本地的时区. 当别的地方用户访问数据库时在显示该类型数据时Oracle会将该时区转换成客户端的时间来显示. 在数据库中保存占7到11字节, 具体看你定义的fractional seconds的精度.
eg:
SQL> create table tml(a timestamp(9) with local time zone)
Table created.
SQL> desc tml;
Name Null? Type
----------------------------------------- -------- ----------------------------
A TIMESTAMP(9) WITH LOCAL TIME
ZONE
SQL> insert into tml values(TO_TIMESTAMP_TZ('2006-12-01 23:12:56.788 -12:44', 'YYYY-MM-DD HH24:MI:SS.FF TZH:TZM'));
1 row created.
SQL> select * from tml;
A
---------------------------------------------------------------------------
02-DEC-06 07.56.56.788000000 PM
-- 可以看到该时间已经发生改变了, 已经进行时区转换了.
SQL> select to_char(a, 'YYYY-MM-DD HH24:MI:SS.FF') from tml;
TO_CHAR(A,'YYYY-MM-DDHH24:MI:
-----------------------------
2006-12-02 19:56:56.788000000
-- 我们同时可以查看上次建立的TIMESTAMP WITH TIME ZONE类型在显示的时候没有进行时区转换工作.
SQL> select * from ff;
A
---------------------------------------------------------------------------
14-DEC-06 07.45.09.90030000 PM -12:00
14-DEC-06 07.45.09.90030000 PM -12:00
14-DEC-06 07.45.09.90030000 PM +13:00
阅读(7173) | 评论(1) | 转发(0) |