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
阅读(7128) | 评论(1) | 转发(0) |