- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
关于OracleTimezone的一点总结
关于Oracle?Timezone的一点总结?(2010-05-02 23:45:46)转载▼标签:?杂谈分类:?oracle背景描述:如果需要支持一个国际化的应用,那么数据库端的国际化特性的支持也就显得尤其重要。Oracle中有很多特性支持国际化,如字符集、时区等等。如果相关参数设置不当,或者由于对相关特性不够了解,以至于在设计阶段没有考虑完全,那么肯定会对应用造成一定的损失。偶前不久也遇到了time zone相关的问题,所以在此结合遇到的问题,对时区问题作一个小小的总结。1. 如何查看和修改数据库和session时区Oracle中相关的时区大体可以分为两类:数据库时区和session时区。可以通过以下方式获得:查看数据库时区信息:SQL select dbtimezone from dual;DBTIME------+08:00查看session时区信息:SQL?select?sessiontimezone?from dual;SESSIONTIMEZONE---------------------------------------------------------------------------+08:00Database的timezone可以在创建数据库的时候指定,如:CREATE DATABASE db01...SET TIME_ZONE=+08:00;或者在数据库创建之后通过alter database语句修改,但是只有重启数据库后有效:ALTER DATABASE SET TIME_ZONE=+08:00;session的timezone可以简单通过alter session语句修改:ALTER SESSION SET TIME_ZONE=+08:00;Note:Database Time Zone只和TIMESTAMP WITH LOCAL TIME ZONE数据类型相关!其实数据库timezone只是一个计算的标尺,TIMESTAMP WITH LOCAL TIME ZONE数据类型从客户端传入数据库后,转为数据库时区存入数据库。在需要进行相关计算的时候,Oracle先把时间转换为标准时间(UTC),完成计算后再把结果转换为数据库时区的时间保存到数据库。关于TIMESTAMP WITH LOCAL TIME ZONE数据类型的详细信息,请参考随后相关部分:)2. 时区相关的数据类型和时区相关的数据类型主要有:DATE,TIMESTAMP,TIMESTAMP WITH TIME ZONE和TIMESTAMP WITH LOCAL TIME ZONE。粗略介绍如下:DATE:存储日期和时间信息,精确到秒。SQL alter session set nls_date_format=YYYY-MM-DD HH24:MI:SS;Session altered.SQL select to_date(2009-01-12 13:24:33,YYYY-MM-DD HH24:MI:SS) from dual;TO_DATE(2009-01-12-------------------2009-01-12 13:24:33TIMESTAMP:DATE类型的扩展,保留小数级别的秒,默认为小数点后6位。不保存时区和地区信息。SQL select localtimestamp?from dual;LOCALTIMESTAMP---------------------------------------------------------------------------12-JAN-09 084000 PMTIMESTAMP WITH TIME ZONE:存储带时区信息的TIMESTAMP(以和UTC时间差或者地区信息的形式保存)。形式大致为:TIMESTAMP 2009-01-12 8:00:00 +8:00TIMESTAMP WITH LOCAL TIME ZONE:另一种不同类型的TIMESTAMP,和TIMESTAMP WITH TIME ZONE类型的区别在于:数据库不保存时区相关信息,而是把客户端输入的时间转换为基于database timezone的时间后存入数据库(这也就是database tmiezone设置的意义所在,作为TIMESTAMP WITH LOCAL TIME ZONE类型的计算标尺)。当用户请求此类型信息时,Oracle把数据转换为用户session的时区时间返回给用户。所以Oracle建议把database timezone设置为标准时间UTC,这样可以节省每次转换所需要的开销,提高性能。下面是针对以上几种类型所做的实验:操作DATE类型数据:SQL INSERT INTO table_dt
原创力文档


文档评论(0)