timestamp with local time zone类型和timestamp with time 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分
本文转自einyboy博客园博客,原文链接:http://www.cnblogs.com/einyboy/archive/2012/08/06/2624895.html,如需转载请自行联系原作者。
timestamp with local time zone类型和timestamp with time zone相关推荐
- JdbcType类型和Java类型的对应关系(java.sql.date,java.sql.time,java.sql,Timestamp)
参考博客: java中几个时间的区别(java.sql.date,java.sql.time,java.sql.Timestamp):https://blog.csdn.net/fanfan19931 ...
- Spark SQL读数据库时不支持某些数据类型的问题(Timestamp with local Timezone)
在大数据平台中,经常需要做数据的ETL,从传统关系型数据库RDBMS中抽取数据到HDFS中.之前开发数据湖新版本时使用Spark SQL来完成ETL的工作,但是遇到了 Spark SQL 不支持某些数 ...
- Java基础 时间相关类小结[Timestamp,Date,Calendar]
Java基础 时间相关类[Timestamp,Date,Calendar] 前言 一.Timestamp(时间戳) 二.Date(日期) 三.Calendar(日历) 四.Timestamp.Date ...
- 金仓数据库KingbaseES数据类型和oracle数据类型的映射表
关键字:kingbase,oracle,数据类型 KingbaseES数据类型和oracle数据类型的映射表如下: Oracle数据类型 KingbaseES 数据类型 备注说明(Oracle) 数值 ...
- android float类型保留两位小数_你知道MySQL中Decimal类型和Float Double的区别吗?
出处:cnblogs.com/panchanggui/p/10766607.html MySQL中存在float,double等非标准数据类型,也有decimal这种标准数据类型. 其区别在于,flo ...
- 学习MySQL,怎么能不会数据类型和schema优化!
作者 | 草捏子 来源 | 草捏子(ID:chaycao) 头图 | CSDN 下载自东方IC 本文就数据类型和schema方面的优化进行介绍. 选择优化的数据类型 MySQL支持的数据类型有很多, ...
- oracle数据类型和Java类型之间的映射关系
SQL数据类型 JDBC类型代码 标准的Java类型 Oracle扩展的Java类型 1.0标准的JDBC类型: CHAR java.sql.Types.CHAR java.lang.St ...
- MySQL(二)数据类型和schema优化
数据类型和schema优化 数据类型的优化 更小的通常更好 <高性能MySQL> 应该尽量使用可以正确存储数据的最小数据类型,更小的数据类型通常更快,因为它们占用更少的磁盘.内存和CPU缓 ...
- oracle的int范围,oracle中int类型和number类型区别
oracle中int类型和number类型区别 INT类型是NUMBER类型的子类型. 下面简要说明: (1)NUMBER(P,S) 该数据类型用于定义数字类型的数据,其中P表示数字的总位数(最大字节 ...
最新文章
- windows7 端口查看以及杀死进程释放端口
- TypeScript之Https通信
- 【bzoj2463】 谁能赢呢?
- Py之seaborn:seaborn库的简介、安装、使用方法之详细攻略
- Hi3516A开发--使用root模式登录Ubuntu14.04
- Qt5 中的 signal/slot 新语法
- 暴击!被初中生碾压智商!这份被国家数学集训队采用的初中奥数资料究竟有多厉害?...
- oracle修改filesystem,(转):oracle、filesystem、backup日常巡检脚本
- c语言程序设计编程解读,【答题】C语言程序设计问题与解释实验
- Ubuntu(Debian) 18.04 安装后开启ssh和防火墙传输文件
- 64位ie加载java失败_java-无法在AMD 64位平台上加载IA 32位.dll
- javascript数组的各种操作
- java 接口隔离_《Java设计模式及实践》—1.5.4 接口隔离原则
- Julia :复合类型struct当索引时
- 合肥科学岛安光所计算机应用,国家大气污染防治攻关联合中心成立 合肥科学岛安光所承担重任...
- 小明历险记:规则引擎Drools教程详解
- CoLA任务的数据增强方法
- 想了解Intel vPro(博锐)技术,就来Intel vPro虚拟展厅
- 谋定而后动 知止而有得
- img 光盘映像文件已损坏_img文件怎么打开