ITPub博客

首页 > 数据库 > Oracle > Oracle的时区问题Time Zone

Oracle的时区问题Time Zone

原创 Oracle 作者:lhrbest 时间:2020-11-28 11:20:11 0 删除 编辑
--查询时区文件支持的时区
SELECT * FROM V$TIMEZONE_NAMES;
--查询SESSION中设置的时区
SELECT SESSIONTIMEZONE FROM DUAL;
--在SESSION级别设置时区
ALTER SESSION SET TIME_ZONE = local;
ALTER SESSION SET TIME_ZONE = dbtimezone;
ALTER SESSION SET TIME_ZONE = '-05:00';
ALTER SESSION SET TIME_ZONE = 'Europe/London';
--或者
$ ORA_SDTZ='OS_TZ'
$ export ORA_SDTZ
$ ORA_SDTZ='-05:00'
$ export ORA_SDTZ
--查询数据库的时区
SELECT DBTIMEZONE FROM DUAL;
SELECT property_name, property_value
FROM database_properties
WHERE property_name='DBTIMEZONE';
SELECT name, value$
FROM props$
WHERE name='DBTIMEZONE';
--设置数据库的时区
CREATE DATABASE ...
SET TIME_ZONE='Europe/London';
--或者  (修改后需要重启)
ALTER DATABASE SET TIME_ZONE = '-05:00';
ALTER DATABASE SET TIME_ZONE = 'Europe/Lisbon';
--查询在指定时区的当地时间
SELECT TZ_OFFSET('Europe/London') FROM DUAL;
--当前使用的时区文件,如果查询的值接近与700,那么使用的是timezone.dat,如果接近于1300,那么是timezlrg.dat
SELECT COUNT(*) FROM v$timezone_names;





--查看当前数据库系统的时区

   SQL> select dbtimezone from dual;

 DBTIME

 ------

 +00:00

--查看当前数据库的时间

SQL> select to_char

  2  (sysdate,'yyyymmdd hh24:mi:ss') from dual;

 

TO_CHAR(SYSDATE,'

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

20121017 16:58:26

--修改时区

SQL> alter database set time_zone='+8:00';

alter database set time_zone='+8:00'

*

ERROR at line 1:

ORA-30079: cannot alter database timezone when database has  TIMESTAMP WITH  LOCAL TIME ZONE columns

主要问题就是因为上面红色字体标注,即使用了本地时区列,为了查找这个列,查了不少资料。

--查找有问题的表

SQL> select u.name || '.' || o.name || '.' || c.name

  2  TSLTZcolumn from sys.obj$ o, sys.col$ c, sys.user$ u

  3  where c.type# = 231 and o.obj# = c.obj# and u.user# = o.owner#;

 

TSLTZCOLUMN

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

OE.ORDERS.ORDER_DATE  

就是上面这个这个表中的列采用了 timestamp with local timezone

--查看oe.orders表的属性

SQL> desc oe.orders

 Name                                      Null?    Type

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

 ORDER_ID                                  NOT NULL NUMBER(12)

  ORDER_DATE                                NOT NULL TIMESTAMP(6) WITH LOCAL TIME

                                                     ZONE

 ORDER_MODE                                         VARCHAR2(8)

 CUSTOMER_ID                               NOT NULL NUMBER(6)

 ORDER_STATUS                                       NUMBER(2)

 ORDER_TOTAL                                        NUMBER(8,2)

 SALES_REP_ID                                       NUMBER(6)

 PROMOTION_ID                                       NUMBER(6)

--删除此列

SQL> alter table oe.orders drop column order_date;

 

Table altered.

--再次设置时区

SQL> alter database set time_zone='+8:00';

 

Database altered.

SQL> startup force;  

ORACLE instance started.

Total System Global Area  608174080 bytes

Fixed Size                  1220820 bytes

Variable Size             197136172 bytes

Database Buffers          402653184 bytes

Redo Buffers                7163904 bytes

Database mounted.

Database opened.

--再次查看时区

SQL> select dbtimezone from dual;

DBTIME

------

+08:00

到此时区就已经设置正确了







About Me

........................................................................................................................

● 本文作者:小麦苗,部分内容整理自网络,若有侵权请联系小麦苗删除

● 本文在个人微 信公众号( DB宝)上有同步更新

● QQ群号: 230161599 、618766405,微信群私聊

● 个人QQ号(646634621),微 信号(db_bao),注明添加缘由

● 于 2020年11月完成

● 最新修改时间:2020年11月

● 版权所有,欢迎分享本文,转载请保留出处

........................................................................................................................

小麦苗的微店https://weidian.com/s/793741433?wfr=c&ifr=shopdetail

● 小麦苗出版的数据库类丛书: http://blog.itpub.net/26736162/viewspace-2142121/

小麦苗OCP、OCM、高可用、MySQL、DBA学习班http://blog.itpub.net/26736162/viewspace-2148098/

● 数据库笔试面试题库及解答: http://blog.itpub.net/26736162/viewspace-2134706/

........................................................................................................................

请扫描下面的二维码来关注小麦苗的微 信公众号( DB宝)及QQ群(230161599、618766405)、添加小麦苗微 信(db_bao), 学习最实用的数据库技术。

........................................................................................................................

 

 



来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/26736162/viewspace-2737766/,如需转载,请注明出处,否则将追究法律责任。

上一篇: sql server解析日志
请登录后发表评论 登录
全部评论
【QQ:646634621】【微信:db_bao】【微信公众号:DB宝】【11g、12c OCM】【QQ群:230161599、618766405】【《数据库笔试面试宝典》作者】【OCP、OCM、高可用(RAC+DG+OGG)、MySQL培训班已开讲,只讲实用内容】

注册时间:2012-09-23

  • 博文量
    1586
  • 访问量
    9180686