开发者社区> 问答> 正文

云数据库修改时区

在云数据库使用sql修改数据库的时区,重启数据库后会失效,如何实现永久生效?

展开
收起
雪扬科技 2019-03-04 12:00:43 825 0
1 条回答
写回答
取消 提交回答
  • 首先确认会话时区是否正确,会话时区可能和数据库时区不一致 SQL> SELECT SESSIONTIMEZONE FROM DUAL; SESSIONTIMEZONE --------------------------------------------------------------------------- +08:00 会话时区是北京时区 SQL> SELECT DBTIMEZONE FROM DUAL; DBTIME ------ +00:00 DB是世界时区 SQL> SELECT TZ_OFFSET(SESSIONTIMEZONE), TZ_OFFSET(DBTIMEZONE) FROM DUAL; TZ_OFFS TZ_OFFS ------- ------- +08:00 +00:00  1.检查数据库是否有这样的字段类型 TIMESTAMP WITH LOCAL TIME ZONE SQL>select c.owner || '.' || c.table_name || '(' || c.column_name || ') -'  || c.data_type || ' ' col  from dba_tab_cols c, dba_objects o  where c.data_type like '%WITH LOCAL TIME ZONE'  and c.owner=o.owner  and c.table_name = o.object_name  and o.object_type = 'TABLE' order by col / SQL>select u.name || '.' || o.name || '.' || c.name TSLTZcolumn  from sys.obj$ o, sys.col$ c, sys.user$ u  where c.type# = 231  and o.obj# = c.obj#  and u.user# = o.owner#; 2.检查当前数据库时区 SQL> select * from database_properties where property_name='DBTIMEZONE'; 行将被截断  PROPERTY_NAME PROPERTY_VALUE ------------------------------ ------------------------------------------------- DBTIMEZONE 00:00 3.改变数据库时区 SQL> ALTER DATABASE SET TIME_ZONE = '+8:00'; 数据库已更改。 SQL> shutdown immediate 数据库已经关闭。 已经卸载数据库。 ORACLE 例程已经关闭。 SQL> startup ORACLE 例程已经启动。 Total System Global Area 272629760 bytes Fixed Size 1248528 bytes Variable Size 92275440 bytes Database Buffers 171966464 bytes Redo Buffers 7139328 bytes 数据库装载完毕。 数据库已经打开。 SQL> select dbtimezone from dual; DBTIME ------ +08:00  4.检查时间 SQL> select to_char(sysdate, 'yyyy-mm-dd hh24:mi:ss') from dual SQL> SELECT SYSTIMESTAMP FROM dual; SYSTIMESTAMP --------------------------------------------------------------------------- 23-7月 -09 11.50.25.750000 上午 +08:00
    

    “答案来源于网络,供您参考” 希望以上信息可以帮到您!

    2019-09-27 09:52:36
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
DTCC 2022大会集锦《云原生一站式数据库技术与实践》 立即下载
阿里云瑶池数据库精要2022版 立即下载
2022 DTCC-阿里云一站式数据库上云最佳实践 立即下载