暂无图片
分享
gululu79
2019-08-19
数据库时区

Oracle 时区 dbtimezone  sessiontimezone 的区别

在生产数据库查询:

SYS@SKYDB> select dbtimezone from dual;

DBTIME

------

+00:00

SYS@SKYDB> select sessiontimezone from dual;

SESSIONTIMEZONE

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

+08:00

dbtimezone 和 sessiontimezone 查询的值不一样,生产数据库也运行了几年,两个值不一样会有影响吗,dbtimezone 和 sessiontimezone 的具体什么区别,是不是只有sessiontimezone 正确的就行了?dbtimezone 会影响数据库收集统计信息的时间吗?

收藏
分享
3条回答
默认
最新
胡东宝

DATABASE timezone:参考文档:Timestamps & time zones - Frequently Asked Questions (文档 ID 340512.1)

数据库的时区并不像听起来那么重要。首先,它不影响像SYSDATE,或SYSTIMESTAMP功能,这些功能把他们的内容(日期和时间,并在SYSTIMESTAMP也时区的情况下)完全取决于操作系统。没有任何“oracle”产品的影响。

数据库时区的唯一功能是:它作为一个时区标准,“TIMESTAMP WITH LOCAL TIME ZONE”(TSLTZ)数据类型的值都被格式化并存储成当前数据库时区的格式。然而,在回话的检索或者插入式,这些存储的值将被转换成当前会话端的时区,所以数据库时区的实际设置是或多或少的不重要。

用于会话的时区是会话的时区,并在客户端的定义,而不是数据库端

该DBTIMEZONE应设置为一个偏移量(+00:00,-05:00或+09:00例如),或不会受DST(如UTC或GMT)静态时区,而不是一个命名时区是由DST(像欧洲/布鲁塞尔或美国/中部)的影响。

如何查看数据库当前的timezone呢?可以用如下命令:

select dbtimezone from dual;

这个dbtimezone只是用来格式化TSLTZ的数据,没有任何别的用处,会在数据库创建的时候有个sql( CREATE DATABASE... SET TIME_ZONE='+00:00';)可以去指定,如果不指定,就会用os server上的timezone offset


原文链接:https://blog.csdn.net/cymm_liu/article/details/29234919


暂无图片 评论
暂无图片 有用 0
王文忠

这两个值默认就是这样的。不知道你的数据库是什么版本。

我看了一下11g,12c都是一样的。


11.2官方文档:


看样子是SESSIONTIMEZONE根据我们创建数据库所选择的时区是一致的。东8区。dbtimezone官方文档已经解释了,只有在create database或者alter database指定的。

暂无图片 评论
暂无图片 有用 0
gululu79
问题已关闭: 问题已经得到解决
暂无图片 评论
暂无图片 有用 0
回答交流
提交
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~
暂无图片墨值悬赏