如何修改数据库时区
2013-04-17 18:18
218 查看
如何修改数据库时区
转自:http://space.itpub.net/175005/viewspace-618100
首先确认会话时区是否正确,会话时区可能和数据库时区不一致
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
转自:http://space.itpub.net/175005/viewspace-618100
首先确认会话时区是否正确,会话时区可能和数据库时区不一致
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
相关文章推荐
- 如何修改SQL Server 中数据库的Collation
- MSSQL如何修改默认数据库的存储路径
- 如何修改sql server 2005默认数据库路径?
- 如何完整的修改一个数据库的名称
- 当重装数系统/数据库之后,如何恢复数据库的账号 登录名/用户名 孤立用户 缩小ldf日志文件 修改sqlserver2000端口
- 如何修改为出厂时区为 指定的时区和默认的日期?
- Linux中如何查看修改系统的时间和时区
- [转]android 如何修改对应时区的夏令时、冬令时?
- 如何对dataset中进行修改并把修改后的数据保存到数据库中?
- XenDesktop 5.6如何连接数据库(修改)
- 如何读取配置文件并连接后台数据库,且对数据库进行操作实例(查询或修改等)
- 如何修改SQL Server 2000的数据库逻辑与物理名称
- 如何修改DedeEims 数据库连接地址和用户名
- 如何修改Visual Studio默认数据库localDB
- Ubuntu8.10命令行下如何修改时区信息
- 数据库修改参数如何生效(详)
- centos6.5系统下如何修改时区
- sql2005恢复数据库后,如何修改表的架构
- 如何查看/修改Linux时区和时间
- 多步 OLE DB 操作产生错误与如何修改数据库字段大小