timestamp with local time zone类型和timestamp with time zone

timestamp with local time
zone类型和timestamp with time zone

 

转自http://blog.163.com/zangyunling@126/blog/static/164624505201052113959538/

timestamp with loca time zone类型语法

tmestamp[(fractional_seconds_precisions)] with local zone

timestamp with local time zone 和timesatamp with time
zone的最大区别就是,前者在用户提交时间给数据库的时,该类型会转换成数据库的时区来保存数据,即数据库保存的时间是数据库本地时区,当别的用户访问数据库时oracle会自动将该时间转换成当前客户端的时间。

例子:

1、创建表

CREATE TABLE TIMESTAMP_TEST(
TIME DATE,
TIMESTP
TIMESTAMP(3),
TIMESTP_TZ TIMESTAMP(3) WITH TIME ZONE,
TIMESTP_LTZ
TIMESTAMP(3) WITH LOCAL TIME ZONE)
2、添加数据

INSERT INTO TIMESTAMP_TEST
VALUES(SYSDATE,SYSDATE,SYSDATE,SYSDATE);

commit;

3、查询dbtimezone和sessiontimezone的值

select dbtimezone ,sessiontimezone from dual;

DBTIME
------
SESSIONTIMEZONE
---------------------------------------------------------------------------
+00:00
+08:00
4、查看数据的值

SQL> SELECT * FROM TIMESTAMP_TEST;

TIME
--------------
TIMESTP
--------------------------------------------------------------
TIMESTP_TZ
--------------------------------------------------------------
TIMESTP_LTZ
--------------------------------------------------------------
02-6月
-10
02-6月 -10 11.21.10.000 上午
02-6月 -10 11.21.10.000 上午 +08:00
02-6月
-10 11.21.10.000 上午
5、修改会话的time_zone值

alter session set time_zone='+10:00';

6、查看结果

SQL> SELECT * FROM TIMESTAMP_TEST;

TIME
--------------
TIMESTP
-----------------------------------------------------
TIMESTP_TZ
-----------------------------------------------------
TIMESTP_LTZ
-----------------------------------------------------
02-6月
-10
02-6月 -10 11.21.10.000 上午
02-6月 -10 11.21.10.000 上午 +08:00
02-6月 -10 01.21.10.000 下午

7、从上面的实验可以看出二者的去区别,当session的时区由8变为10是,时间增加两个小时

再向表中添加一条记录
insert into TIMESTAMP_TEST values(

TO_TIMESTAMP_TZ('2010-12-01 23:12:56.788 -12:44', 'YYYY-MM-DD HH24:MI:SS.FF
TZH:TZM'),

TO_TIMESTAMP_TZ('2010-12-01 23:12:56.788-12:44', 'YYYY-MM-DD HH24:MI:SS.FF
TZH:TZM'),

TO_TIMESTAMP_TZ('2010-12-01 23:12:56.788 -12:44', 'YYYY-MM-DD HH24:MI:SS.FF
TZH:TZM'),

TO_TIMESTAMP_TZ('2010-12-0123:12:56.788 -12:44', 'YYYY-MM-DD HH24:MI:SS.FF
TZH:TZM'));

(tzh:时区中的小时,tzm:时区中的分)

在这里我指定了数据添加时的时区为-12:44,查询结果为

TIME
--------------
TIMESTP
---------------------------------------------------------------------------
TIMESTP_TZ
---------------------------------------------------------------------------
TIMESTP_LTZ
---------------------------------------------------------------------------
01-12月-10
01-12月-10
11.12.56.788 下午
01-12月-10 11.12.56.788 下午
-12:44
02-12月-10 09.56.56.788 下午

TIME
--------------
TIMESTP
---------------------------------------------------------------------------
TIMESTP_TZ
---------------------------------------------------------------------------
TIMESTP_LTZ
---------------------------------------------------------------------------
02-6月
-10
02-6月 -10 11.21.10.000 上午
02-6月 -10 11.21.10.000 上午 +08:00
02-6月
-10 01.21.10.000 下午
由于当前用户的时区是+10:00,添加数据时的指定时区死-12:44,二者时间相差22小时44分

时间: 2024-10-26 05:17:38

timestamp with local time zone类型和timestamp with time zone的相关文章

ORACLE DATE类型和TIMESTAMP类型DUMP换算

date 类型: 十进制: 120,115,8,14,14,46,46  7 BYTE 120  世纪字节 +100存储 115  年字节   +100存储 8    月字节   源数据存储 14   日字节   源数据存储 14   小时字节 +1存储 46   分字节   +1存储 46   秒字节   +1存储 120-100=20 115-100=15 8-0=8 14-0=14 14-1=13 46-1=45 46-1=45 2015-08-14 13:45:45 timestamp类

SQL数据类型和C#数据类型间的转换

今天看到SQL数据类型和C#数据类型间的转换,前人留下的. <?xml version="1.0" encoding="utf-8" ?> <Languages> <Language From="SQL" To="C#"> <Type From="bigint" To="long" /> <Type From="binary

c++-C++ float类型和double类型的输出

问题描述 C++ float类型和double类型的输出 在VS2012下,用cout<<输出float和double,为什么精度都只有6位? 解决方案 http://blog.sina.com.cn/s/blog_a459dcf501013g39.htmlhttp://wenda.so.com/q/1371005504064718 解决方案二: setprecision Sets the decimal precision used to represent floating-point v

json数据-fast json 如何设置long类型和String类型转换的?

问题描述 fast json 如何设置long类型和String类型转换的? fast json 如何设置long类型和String类型转换的?以方便spring mvc 使用@requestBody直接调用返回的处理过的JSON数据?详细配置说明..

关于object类型和string类型转换

问题描述 关于object类型和string类型转换 string sqlhbsag = "select HBSAG_INDICATOR from UT_Patient_List where PATIENT_ID='" + PATIENT_ID + "'"; object hbsag = Z_Execution.Gt(sqlhbsag); this.textBoxNC8.Text = hbsag.ToString(); 这样写是对的么 解决方案 Object类型可以

浅谈js基本数据类型和typeof_基础知识

JavaScript数据类型是非常简洁的,它只定义了6中基本数据类型 •null:空.无.表示不存在,当为对象的属性赋值为null,表示删除该属性 •undefined:未定义.当声明变量却没有赋值时会显示该值.可以为变量赋值为undefined •number:数值.最原始的数据类型,表达式计算的载体 •string:字符串.最抽象的数据类型,信息传播的载体 •boolean:布尔值.最机械的数据类型,逻辑运算的载体 •object:对象.面向对象的基础 #当弹出一个变量时: var aa;a

递归输出ASP.NET页面所有控件的类型和ID的代码_实用技巧

写一个方法: 复制代码 代码如下: private void DisplayAllControl(Control control, int step) { foreach (Control ctl in control.Controls) { string s = new string('-', step * 4) + ctl.GetType().Name + "〈" + ctl.ID + "〉"; Response.Write(s + "<br/&

AIDL文件中 in类型和out类型数据的区别

  最近困惑于aidl文件中 in类型和out类型数据的区别.网上很多解释是:in 输入类型.out输出类型或者in在客户端赋值,out在服务端赋值.但更加具体的就没有了.这里我贴出我写的简单代码,大家尝试一下就会有所了解,希望大家能分享下自己的理解. in表示是输入参数,out表示是输出参数,可以传出某个参数值,inout表示输入输出参数,先传入参数,处理后传出 传值,      是把实参的值赋值给行参      那么对行参的修改,不会影响实参的值           传地址      是传值

数据类型和Json格式

数据类型和Json格式 作者: 阮一峰 日期: 2009年5月30日 1. 前几天,我才知道有一种简化的数据交换格式,叫做yaml. 我翻了一遍它的文档,看懂的地方不多,但是有一句话令我茅塞顿开. 它说,从结构上看,所有的数据(data)最终都可以分解成三种类型: 第一种类型是标量(scalar),也就是一个单独的字符串(string)或数字(numbers),比如"北京"这个单独的词. 第二种类型是序列(sequence),也就是若干个相关的数据按照一定顺序并列在一起,又叫做数组(a