--在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 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

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

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

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

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

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

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

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

● 于 2020年11月完成

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

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

小麦苗的微店 ● 小麦苗出版的数据库类丛书: 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), 学习最实用的数据库技术。

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

【QQ:646634621】【微信:db_bao】【微信公众号:DB宝】【QQ群:230161599】【Oracle OCP、OCM、高可用(RAC+DG+OGG)、MySQL OCP、PGCA+PGCE+PGCM等都可以找麦老师了】【个人网站:xmmup.com】

注册时间: 2012-09-23

10772375

广播电视节目制作经营许可证(京) 字第1234号 中国互联网协会会员