Oracle中的 timestamp 和 timestamp with time zone, timestamp with local time zone

简介:

开始

从网络学习文章:http://blog.csdn.net/zhangmenghao1983/article/details/5185591

我自己的实验:

复制代码
SQL> select dbtimezone, sessiontimezone from dual;                    
                    
DBTIME                    
------                    
SESSIONTIMEZONE                    
---------------------------------------------------------------------------                    
+00:00                    
-08:00                    
                    
                    
SQL>                     
                    
                    
                    
SQL> create table timetest(tme date,tmestp timestamp(3), tmestp_tz timestamp(3) with time zone, tmpstp_tzl timestamp(3) with local time zone);                    
                    
Table created.                    
                    
SQL>                     
                    
                    
                    
SQL> insert into timetest values(sysdate,sysdate,sysdate,sysdate);                    
                    
1 row created.                    
                    
SQL> select * from timetest;                    
                    
TME                    
---------                    
TMESTP                    
---------------------------------------------------------------------------                    
TMESTP_TZ                    
---------------------------------------------------------------------------                    
TMPSTP_TZL                    
---------------------------------------------------------------------------                    
11-Nov-12                    
11-NOV-12 11.56.27.000 PM                    
11-NOV-12 11.56.27.000 PM -08:00                    
11-NOV-12 11.56.27.000 PM                    
复制代码

对比:

复制代码
SQL> alter session set time_zone='+10:00';

Session altered.

SQL> select * from timetest;

TME
---------
TMESTP
---------------------------------------------------------------------------
TMESTP_TZ
---------------------------------------------------------------------------
TMPSTP_TZL
---------------------------------------------------------------------------
11-Nov-12
11-NOV-12 11.56.27.000 PM
11-NOV-12 11.56.27.000 PM -08:00
12-NOV-12 05.56.27.000 PM
复制代码

从此处可以看到:

timestamp with time zone 表达的是 针对 标准时区(格林尼治时间)的差。

timestamp with local time zone 表达的是 ,根据你当前所处时区,变化你和格林尼治时间的差。

如果过去相对标准时区 -8 ,那么移动到+10 时区的时候,需要加:10-(-8)=18 ,

就是 夜里11点56分+18小时 -->夜11点+1点+17小时+56分,-->凌晨过17小时+56分 -->凌晨+12小时+5小时+56分,

就是下午5小时56分。

那么,在跨越多时区的系统里,timestamp with timezone 或者 timestamp with local timezone就比较重要了。

结束





本文转自健哥的数据花园博客园博客,原文链接:http://www.cnblogs.com/gaojian/archive/2012/11/12/2766526.html,如需转载请自行联系原作者

目录
相关文章
|
Oracle 关系型数据库
oracle timestamp相减 计算差多少秒
oracle timestamp相减 计算差多少秒
191 0
|
SQL Oracle 关系型数据库
|
SQL Oracle 关系型数据库
|
SQL Oracle 关系型数据库
oracle date 和 timestamp区别
在今天的工作中,学到了以下几个知识点: 一、date和timestamp 的区别      date类型是Oracle常用的日期型变量,他的时间间隔是秒。两个日期型相减得到是两个时间的间隔,注意单位是“天”。
1513 0
|
存储 Oracle 关系型数据库
ORACLE DATE类型和TIMESTAMP类型DUMP换算
date 类型: 十进制: 120,115,8,14,14,46,46  7 BYTE 120  世纪字节 +100存储 115  年字节   +100存储 8    月字节   源数据存储 14   日字节   源数据存储 14   小时字节 +1...
834 0
|
Oracle 关系型数据库 索引
oracle 使用 date timestamp 而不使用varchar2()的好处
oracle数据库,表示日期数据基本是date型,只有年月的用varchar2或者char,好处见下: 1、数据规范。date对合法日期型会校验,包括闰年2月这种。避免字符型变量产生的某月32号,日期长度不对,日期格式不统一等问题。曾经有过痛苦经历,面对字符型的2013111这种数据不知道是11月1日还是1月11日,只想说日… 2、检索效率。如果你经常在where后面带这个日期,或者要
1442 0
|
Oracle 关系型数据库
向Oracle插入timestamp类型字段
 如果是中文字符集: [TEST@ora10gr1#2009-11-25/08:39:38] SQL>create table t1(t timestamp); Table created.
888 0
|
14天前
|
SQL Oracle 关系型数据库
【Oracle】玩转Oracle数据库(一):装上去,飞起来!
【Oracle】玩转Oracle数据库(一):装上去,飞起来!
56 7

推荐镜像

更多