cosio的专栏

本BLOG只用于个人资料收藏,内容如非注明,均为转贴资料,无意侵犯版权,特此声明!

用户操作
[留言]  [发消息]  [加为好友] 
订阅我的博客
XML聚合    FeedSky
订阅到鲜果
订阅到Google
订阅到抓虾
cosio的公告
<iframe name=sina_roll src=http://news.sina.com.cn/o/allnews/input/index.html height=14 width=175 Frameborder=No Border=0 Marginwidth=0 Marginheight=0 Scrolling=No></iframe> <br> <a href=Http://Blog.CSDN.Net/cosio title="点击此处进入首页">首页</a> <a title="点击此处给偶留言" href=http://blog.csdn.net/cosio/contact.aspx>留言</a> <!-- QQ在线状态显示 --> <a href="http://wpa.qq.com/msgrd?V=1&Uin=75558288"><img border=0 src="http://wpa.qq.com/pa? p=1:75558288:7" alt="点击这里给我发消息"></a> <div style="text-align: left;"> <IFRAME style="WIDTH: 190px; HEIGHT: 210px" src="http://weather.news.qq.com/inc/ss252.htm" frameBorder=0 width=170 scrolling=no height=200></IFRAME> <script type="text/javascript"> function searchGoogle(key,evt,site) { if(evt.keyCode==13 || evt.keyCode==0 || evt.type =='click') { key.focus(); var keystr = key.value; url = "http://www.google.com/search?q="; url = url + keystr; url += "&ie=UTF-8&oe=GB2312&hl=zh-CN&domains="+site+"&sitesearch="+site; window.location=url; return false; } } </script> <input style="width: 130px" type="text" name="q" id="q" onkeydown="return SearchGoogle(document.getElementById('q'),event,'blog.csdn.net')" />&nbsp; <input onclick="searchGoogle(document.getElementById('q'),event,'blog.csdn.net')" type="button" value="搜索" name="sa" /> </div>
文章分类
学习网站
eagly
JAVA博客
JAVA姐姐博客
mornlee Blog
微软姐姐的博客
存档

原创  关于oracle时区 收藏

商业和数据库很多时候必须跨时区工作,从9i开始,oracle环境开始有了时区意识,通过指定数据库的时区和使用TIMESTAMP WITH TIME ZONE和TIMESTAMP WITH LOCAL TIME ZONE数据类型来实现该功能。

TIMESTAMP WITH TIME ZONE不会存储数据库时区,但是有一个指示用来说明该时间所使用的时区。TIMESTAMP WITH LOCAL TIME ZONE会同时存储数据库时区,并且会根据查询客户端的时区进行相应的转换。

数据库时区可以在创建时在create database命令中设置,也可以使用alter database set TIME_ZONE=...来修改。如果没有特别的指定,默认的,数据库将遵从主机操作系统时区设置,或者取自环境变量ORA_STDZ。所有支持的时区记录在V$TIMEZONE_NAMES动态性能表中。时区有三种表示方法,全名、缩写和相对于标准时间(格林威治时间)的固定偏移,比如标准时间相应的三种表示方法分别为:Etc/Greenwich、GMT和+00:00。

下面通过一个例子来说明时区的调整的影响。

1.建立相关的表:
SQL> create table times(date_std date, date_tz timestamp with time zone,
date_ltz timestamp with local time zone);

Table created.

2.确定系统当前的时区:
SQL> select property_value from database_properties where property_name='DBTIMEZONE';

PROPERTY_VALUE
00:00

3.修改当前连接的时区,并设置相关的时间戳格式:
SQL> alter session set time_zone='Asia/Chongqing';

Session altered.

SQL> alter session set nls_timestamp_tz_format='YYYY-MM-DD HH24:MI:SS TZD:TZR';

或者

SQL> alter session set nls_timestamp_tz_format='YYYY-MM-DD HH24:MI:SS TZH';

Session altered.

SQL> alter session set nls_timestamp_format='YYYY-MM-DD HH24:MI:SS';

Session altered.

SQL> alter session set nls_date_format='YYYY-MM-DD HH24:MI:SS';

Session altered.

4.插入数据并显示:

SQL> insert into times values('2004-10-26 15:00:00',
2004-10-26 15:00:00','2004-10-26 15:00:00');

1 row created.

SQL> commit;

Commit complete.

SQL> select * from times;

DATE_STD            DATE_TZ                                  DATE_LTZI
------------------- ---------------------------------------- ------------------------------
02004-10-26 15:00:00 2004-10-26 15:00:00 CST:ASIA/CHONGQING   2004-10-26 15:00:00

5.转换当前连接的时区到数据库时区:

SQL> alter session set time_zone=DBTIMEZONE;

Session altered.

SQL> select * from times;

DATE_STD            DATE_TZ                                  DATE_LTZ
------------------- ---------------------------------------- ------------------------------
2004-10-26 15:00:00 2004-10-26 15:00:00 +08                  2004-10-26 07:00:00

可以看出,timestamp with local time zone类型的字段DATE_LTZ已经根据时区的变换做出了相应的改变。

发表于 @ 2008年10月09日 10:20:00 | 评论( loading... ) | 编辑| 举报| 收藏

旧一篇:学习动态性能表(四)-(2)-V$SQLAREA  | 新一篇:学习动态性能表

  • 发表评论
  • 评论内容:
  •  
Copyright © cosio
Powered by CSDN Blog