Daylight Savings Time (DST)

指 定一个时区的时候,可以使用数字(-05:00),缩写(EST)或者地区名称(US/Eastern)。 在多数情况下,它们的效果是一样的。但是在DST的处理过 程中,如果使用地区名称来指定时区,ORACLE会自动进 行DST的一些转换。  举 例来说,2006-04-02 2:00 AM是US/Eastern进 行DST切换的时刻(http://www.timetemperature.com/tzus/daylight_saving_time.shtml)。在实行DST的时期,US/Eastern的 时区数字显示为 -04:00,在非DST时期,数字显示为 -05:00

下 面分别用地区名称(US/Eastern)和数字(-05:00)来指定时区,测试自动DST转换功能

select to_timestamp_tz('04/02/2006 01:00:00 US/Eastern',

'mm/dd/yyyy hh24:mi:ss tzr') +

to_dsinterval('0 01:00:00')

from dual;

TO_TIMESTAMP_TZ('04/02/200601:

-------------------------------------------------

2006/04/02 03:00:00.000000000 -04:00

select to_timestamp_tz('04/02/2006 01:00:00 EST',

'mm/dd/yyyy hh24:mi:ss tzr') +

to_dsinterval('0 01:00:00')

from dual;

TO_TIMESTAMP_TZ('04/02/200601:

-------------------------------------------------

2006/04/02 03:00:00.000000000 -04:00

使 用地区名称(US/Eastern)或者缩写(EST), 自动进行了DST转 换。因为在DST,2006-04-02 1:59 AM之后就是03:00 AM了,并且时区数字显示为 -04:00。

select to_timestamp_tz('04/02/2006 01:00:00 -05:00',

'mm/dd/yyyy hh24:mi:ss tzh:tzm') +

to_dsinterval('0 01:00:00')

from dual;

TO_TIMESTAMP_TZ('04/02/200601:

-------------------------------------------------

2006/04/02 02:00:00.000000000 -05:00

使 用数字(-05:00),不会进行时区的转换,仍然是 -05:00 ,并且是02:00 AM。 说明这个运算中没有考虑DST的因素。

DST中 容易犯的错误

  1. 如果想把一个字符串转换成 时间类型,就必须考虑“这是否是一个合法的时间?”,比如DST中 的2006-04-02 02:00 AM就是非法的时间

select to_timestamp_tz('04/02/2006 02:00:00 US/Eastern',

'mm/dd/yyyy hh24:mi:ss tzr')

from dual

ORA-01878: specified field not found in datetime or interval

  1. 在ORACLE Scheduler中,如果指定START_DATE的 时候没有明确指定时区,就会采用当前session的时 区。这个情况下,很可能就使用了数字形式的时区。在DST的 时候,系统不能自动进行转换,结果就差生了误差。解决办法是在指定START_DATE的时候明确的使用地区名称来标示时区

转载于:https://www.cnblogs.com/wait4friend/archive/2012/02/10/2345463.html

Oracle 时区(TimeZone )-- DST相关推荐

  1. MYSQL和ORACLE时区设置比较

    MYSQL: 注意时区会影响TIMESTAMP的取值,默认为系统时区为TIME_ZONE=SYSTEM, 动态可以修改 set global  time_zone = '+8:00'; 然后 my.c ...

  2. java不同时区时间转换,Java不同时区(timezone)之间时间转换

    最近出现一个问题是这样的 我们的系统在国外打印的日志时间由于时差关系和国内不一致 看起来不方便 希望国外的日志和国内保持一致 即 需要对不同时区的时间做转换调整 统一为国内时间. 一.关于时区的一些概 ...

  3. java 不同时区时间转换_Java对世界不同时区timezone之间时间转换的处理方法

    最近出现一个问题是这样的:我们的系统在国外打印的日志时间由于时差关系和国内不一致,看起来不方便,希望国外的日志和国内保持一致,即:需要对不同时区的时间做转换调整,统一为国内时间. 一.关于时区的一些概 ...

  4. oracle关于时区,关于oracle时区

    关于oracle时区[@more@] 商业和数据库很多时候必须跨时区工作,从9i开始,oracle环境开始有了时区意识,通过指定数据库的时区和使用TIMESTAMP WITH TIME ZONE和TI ...

  5. mysql连接规定时区以及编码_springboot项目中使用mysql连接遇到时区timezone问题,和编码encoding问题解决...

    springboot项目中使用mysql连接遇到时区timezone问题,和编码encoding问题解决 问题原因 1.application.properties的设置 1.1spring.data ...

  6. 时区(Timezone)一览表

    System.out.println(String.join(",",TimeZone.getAvailableIDs())); 获取指定时区当前系统时间: /*** 按时区获取当 ...

  7. oracle 时区转换_Oracle中的时区转换

    oracle 时区转换 大家好, 在下面找到一些有关oracle中时区转换的有用信息. 希望这对他们中的许多人有所帮助,因为我们工作的所有实时项目都遵循不同的时区(EST,PST等),因此您可能需要根 ...

  8. Java不同时区(timezone)之间时间转换

    最近出现一个问题是这样的:我们的系统在国外打印的日志时间由于时差关系和国内不一致,看起来不方便,希望国外的日志和国内保持一致,即:需要对不同时区的时间做转换调整,统一为国内时间. 一.关于时区的一些概 ...

  9. oracle修改时区无效,Oracle 时区问题

    oracle中的tz_offset是用来返回给定时区与标准时区(UTC universal of time Coordinate 通用时间坐标)的偏移量,其参数可以是: 1.一个合法的时区名 2.一个 ...

最新文章

  1. mysql 查看当前事务id,MySQL 如何查询当前最新事务ID
  2. 采集/自动登录啊都可以用这两个方法实现 asp.net
  3. 检测不到信号,是加点噪声?还是滤除噪声?
  4. ps2020的antlib文件在哪_ant design pro 新增页面
  5. nodejs+express+mongodb简单的例子
  6. 整合php和mysql lnmp,安装配置LNMP服务器(Nginx+PHP+MySQL)
  7. 使用PowerDesigner
  8. 第27课 数组的本质分析
  9. Python搭建投票分类器模型来进行机器学习实验
  10. 计算机excel表格教程高级筛选6,Excel高级筛选
  11. Python利用wakeonlan库 局域网 网络唤醒电脑
  12. 腾讯云 + picgo图床功能
  13. excel打开很慢_从海量Excel文件中快速高效地提取数据
  14. 银保监机构保险许可证数据(2007-2022年)
  15. 2018 ACM-ICPC, Syrian Collegiate Programming Contest I. Rise of the Robots 最小圆覆盖 模板
  16. Python爬虫6:使用API及实例
  17. python执行sql 语句
  18. 交换机access trunk hybrid模式详解
  19. 计算机专业英语词组,计算机专业英语词组.doc
  20. C#pdf电子发票转图片

热门文章

  1. springboot很多以来jar包是在外部当时候,如何打dockerfile到阿里云
  2. Mysql 允许所有IP访问
  3. 常见开源分布式存储系统
  4. 《netty入门与实战》笔记-02:服务端启动流程
  5. 【Spark】SparkStreaming-Kafka-Redis-集成-基础参考资料
  6. I/O多路转接之poll,epoll
  7. ACM训练计划(上)
  8. 小议程序员编写技术文档
  9. 立足优势,你的网站会更精彩
  10. 问卷 假设检验 t检验_真实问题的假设检验