来源: http://space.itpub.net/9765498/viewspace-539881
. 如何查看和修改数据库和session时区
Oracle中相关的时区大体可以分为两类:数据库时区和session时区。可以通过以下方式获得:
查看数据库时区信息:
SQL> select dbtimezone from dual;
DBTIME
------
+08:00
查看session时区信息:
SQL> select sessiontimezone from dual;
SESSIONTIMEZONE
---------------------------------------------------------------------------
+08:00
Database的timezone可以在创建数据库的时候指定,如:
CREATE DATABASE db01
...
SET TIME_ZONE='+08:00';
或者在数据库创建之后通过alter database语句修改,但是只有重启数据库后有效:
ALTER DATABASE SET TIME_ZONE='+08:00';
session的timezone可以简单通过alter session语句修改:
ALTER SESSION SET TIME_ZONE='+08:00';
Note:Database Time Zone只和TIMESTAMP WITH LOCAL TIME ZONE数据类型相关!其实数据库timezone只是一个计算的标尺,TIMESTAMP WITH LOCAL TIME ZONE数据类型从客户端传入数据库后,转为数据库时区存入数据库。在需要进行相关计算的时候,Oracle先把时间转换为标准时间(UTC),完成计算后再把结果转换为数据库时区的时间保存到数据库。关于TIMESTAMP WITH LOCAL TIME ZONE数据类型的详细信息,请参考随后相关部分:)
2. 时区相关的数据类型
和时区相关的数据类型主要有:DATE,TIMESTAMP,TIMESTAMP WITH TIME ZONE和TIMESTAMP WITH LOCAL TIME ZONE。粗略介绍如下:
DATE:存储日期和时间信息,精确到秒。
SQL> alter session set nls_date_format='YYYY-MM-DD HH24:MI:SS';
Session altered.
SQL> select to_date('2009-01-12 13:24:33','YYYY-MM-DD HH24:MI:SS') from dual;
TO_DATE('2009-01-12
-------------------
2009-01-12 13:24:33
TIMESTAMP:DATE类型的扩展,保留小数级别的秒,默认为小数点后6位。不保存时区和地区信息。
SQL> select localtimestamp from dual;
LOCALTIMESTAMP
---------------------------------------------------------------------------
12-JAN-09 07.21.37.984000 PM
TIMESTAMP WITH TIME ZONE:存储带时区信息的TIMESTAMP(以和UTC时间差或者地区信息的形式保存)。形式大致为:
TIMESTAMP '2009-01-12 8:00:00 +8:00'
TIMESTAMP WITH LOCAL TIME ZONE:另一种不同类型的TIMESTAMP,和TIMESTAMP WITH TIME ZONE类型的区别在于:数据库不保存时区相关信息,而是把客户端输入的时间转换为基于database timezone的时间后存入数据库(这也就是database tmiezone设置的意义所在,作为TIMESTAMP WITH LOCAL TIME ZONE类型的计算标尺)。当用户请求此类型信息时,Oracle把数据转换为用户session的时区时间返回给用户。所以Oracle建议把database timezone设置为标准时间UTC,这样可以节省每次转换所需要的开销,提高性能。
分享到:
相关推荐
NULL 博文链接:https://bchen.iteye.com/blog/1632845
oracle游标的总结oracle游标的总结oracle游标的总结oracle游标的总结oracle游标的总结oracle游标的总结oracle游标的总结oracle游标的总结oracle游标的总结
oracle学习心得和总结,本人看过,感觉超好
可通过SQL> SELECT * FROM v$timezone_file;命令查询时区版本 安装过程可以查看我的文章https://blog.csdn.net/weixin_43885834/article/details/105745901 安装补丁后还需要调整时区到最新,调整时区脚本 ...
oracle19.0时区版本35补丁p31335037_190000_Linux-x86-64.zip ...可通过SQL> SELECT * FROM v$timezone_file;命令查询时区版本 Oracle Database 19 Release 19.0.0.0.190416DBRU CORE Patch for Bug#
Oracle数据库的学习总结一Oracle数据库的学习总结一
文档中的内容是从网上资料和自己在Oracle的日常巡检中总结的Oracle日常巡检项。
ORACLE经典常用语句总结 ORACLE经典常用语句总结
Oracle复习总结Oracle复习总结Oracle复习总结Oracle复习总结Oracle复习总结Oracle复习总结
Oracle DBA常用命令总结 , 包含 复杂权限控制等等
oracle RMAN 备份恢复总结 oracle RMAN 备份恢复总结 oracle RMAN 备份恢复总结
oracle solaris 11 zone
可以帮助初级程序员更好学习oracle,同时本资源也有不足之处,望大家不吝赐教!
中软工作总结一:oracle
oracle分区表总结oracle分区表总结oracle分oracle分区表总结区表总结oracle分区表总结
本人自己总结的尚学堂oracle笔记,希望能派上用场,本资源不收资源分,大家可以随意下载
BLOG_Oracle_lhr_Oracle SCN的一点研究.pdfBLOG_Oracle_lhr_Oracle SCN的一点研究.pdf
Oracle数据库备份与恢复总结
Oracle知识点总结,适合初学者,平时多联系,放在手机上,当做电子书来看。
oracle知识点总结.txt 个人对oracle的一些总结