博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
oracle 时区
阅读量:4029 次
发布时间:2019-05-24

本文共 2564 字,大约阅读时间需要 8 分钟。

AST 大西洋标准时
ADT 大西洋夏令时
BST 白令标准时
BDT 白令夏令时
CST 中央标准时
CDT 中央夏令时
EST 东部标准时
EDT 东部夏令时
GMT 格林威治平均时
HST 阿拉斯加夏威夷标准时
HDT 阿拉斯加夏威夷夏令时
MST Mountain标准时
MDT Mountain夏令时
NST 纽芬兰标准时
PST 太平洋标准时
PDT 太平洋夏令时
YST YuKon标准时
YDT YuKon夏令时
使用 DBTimeZone 察看数据库所在的时区
SQL> select dbtimezone from dual;
DBTIMEZONE
----------
+08:00
找2个典型的美国时区
SQL> select tz_offset('US/Eastern'),tz_offset('US/Mountain') from dual;
TZ_OFFSET('US/EASTERN') TZ_OFFSET('US/MOUNTAIN')
----------------------- ------------------------
-05:00 -07:00
建立表,包含不同类型的三个column
create table tstz(ts timestamp, tstz timestamp with time zone, tsltz timestamp with local time zone);
insert into tstz values(systimestamp,systimestamp,systimestamp);
commit;
下面构造一个场景,用三个不同的时区的session来查询同样的数据
SQL>
SQL> alter session set NLS_TIMESTAMP_TZ_FORMAT = 'yyyy/mm/dd hh24:mi:ssxff TZH:TZM';
SQL> alter session set NLS_TIMESTAMP_FORMAT = 'yyyy/mm/dd hh24:mi:ssxff';
使用 SessionTimeZone 察看当前session的时区信息
SQL> select sessiontimezone from dual;
SESSIONTIMEZONE
---------------------------------------------------------------------------
+08:00
SQL> select * from tstz;
TS TSTZ TSLTZ +08:00
------------------------------------------------- ------------------------------------------------- -------------------------------------------------
2008/03/29 10:14:10.774754 2008/03/29 10:14:10.774754 +08:00 2008/03/29 10:14:10.774754
SQL> alter session set time_zone = 'US/Mountain';
SQL> select * from tstz;
TS TSTZ TSLTZ -07:00
------------------------------------------------- ------------------------------------------------- -------------------------------------------------
2008/03/29 10:14:10.774754 2008/03/29 10:14:10.774754 +08:00 2008/03/28 19:14:10.774754
SQL> alter session set time_zone = 'US/Eastern';
SQL> select * from tstz;
TS TSTZ TSLTZ -05:00
------------------------------------------------- ------------------------------------------------- -------------------------------------------------
2008/03/29 10:14:10.774754 2008/03/29 10:14:10.774754 +08:00 2008/03/28 21:14:10.774754
从 高亮部分可以发现
timestamp with time zone 保存了insert的时区, 并且不 论在什么地方查询,显示结果都是一致的
timestamp with local time zone 保存的是一个内部的时区信息, 在不同 时区进行查询,都会自动转换成当前时区进行显示。
因为修改了session的时 区信息,所以系统时区和当前session时区不同
SQL> select systimestamp, current_timestamp, localtimestamp from dual;
SYSTIMESTAMP CURRENT_TIMESTAMP LOCALTIMESTAMP
------------------------------------------------- ------------------------------------------------- -------------------------------------------------
2008/03/29 15:59:37.400640 +08:00 2008/03/29 02:59:37.400646 -05:00 2008/03/29 02:59:37.400646

转载地址:http://pmmbi.baihongyu.com/

你可能感兴趣的文章
iphone开发之SDK研究(待续)
查看>>
计算机网络复习要点
查看>>
Variable property attributes or Modifiers in iOS
查看>>
NSNotificationCenter 用法总结
查看>>
C primer plus 基础总结(一)
查看>>
剑指offer算法题分析与整理(一)
查看>>
剑指offer算法题分析与整理(三)
查看>>
部分笔试算法题整理
查看>>
Ubuntu 13.10使用fcitx输入法
查看>>
pidgin-lwqq 安装
查看>>
mint/ubuntu安装搜狗输入法
查看>>
C++动态申请数组和参数传递问题
查看>>
opencv学习——在MFC中读取和显示图像
查看>>
retext出现Could not parse file contents, check if you have the necessary module installed解决方案
查看>>
pyQt不同窗体间的值传递(一)——对话框关闭时返回值给主窗口
查看>>
linux mint下使用外部SMTP(如网易yeah.net)发邮件
查看>>
北京联通华为光猫HG8346R破解改桥接
查看>>
python使用win32*模块模拟人工操作——城通网盘下载器(一)
查看>>
python append 与浅拷贝
查看>>
Matlab与CUDA C的混合编程配置出现的问题及解决方案
查看>>