来源: 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,这样可以节省每次转换所需要的开销,提高性能。
分享到:
相关推荐
总结起来,Oracle的Timestamp with Time Zone类型和Java的`ZonedDateTime`类是处理时区敏感日期时间的关键工具。在开发中,理解它们的工作原理,掌握如何在数据库和应用程序之间正确地转换和操作这些数据,对于构建...
可通过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学习心得总结 在IT领域中,Oracle数据库因其强大的功能和广泛的适用性而备受青睐。对于初学者而言,掌握Oracle的基本操作是非常重要的一步。本文将根据提供的文档内容,总结和扩展Oracle数据库的基础知识...
Oracle DBA常用命令总结 , 包含 复杂权限控制等等
Oracle常用函数实战总结.xlsx: 1.内容:总结了Oracle数据库中常用的函数及其实战应用。这些函数可能包括字符串处理函数、数值计算函数、日期和时间函数、转换函数等。 2.用途:对于Oracle数据库的使用者来说,这...
"Oracle DBA 面试题总结" Oracle DBA 面试题总结是 Oracle 数据库管理员需要掌握的重要知识点的汇总。本文将从 SQL 调优、执行计划、索引、绑定变量、执行计划稳定性、排序相关内存等方面对 Oracle DBA 面试题进行...
本人自己总结的尚学堂oracle笔记,希望能派上用场,本资源不收资源分,大家可以随意下载
这个"oracle精品实例,练习总结"的压缩包文件显然包含了nickcheng个人整理的一系列关于Oracle数据库的操作实例和学习心得,旨在帮助用户深入理解和应用Oracle技术。下面我们将深入探讨Oracle数据库的一些关键知识点。...
本学习总结涵盖了Oracle的入门知识、全套命令及SQL语法,旨在为初学者提供全面的学习材料。以下是对这些主题的详细阐述: 一、Oracle入门总结 Oracle数据库的基本概念包括数据库实例、表空间、数据文件、控制文件、...
Oracle知识点总结,适合初学者,平时多联系,放在手机上,当做电子书来看。
oracle知识点总结.txt 个人对oracle的一些总结
Oracle数据库命令个人总结是徐博文在2014年3月整理的关于Oracle数据库的命令和心得的总结。下面是从该总结中提取的重要知识点: 1. 查询数据库数据文件的基本字段信息:使用DESC DBA_DATA_FILES命令可以查询数据库...
简单的整理了一些Oracle性能优化方面的知识。 供大家参考学习。
可通过SQL> SELECT * FROM v$timezone_file;命令查询时区版本 安装过程可以查看我的文章https://blog.csdn.net/weixin_43885834/article/details/105745901 安装补丁后还需要调整时区到最新,调整时区脚本 ...
ORACLE应用经验总结,是常年工作在oracle第一线资深人士总结文档
Java操作Oracle的基本方式总结的方法
Oracle分析函数使用总结Oracle分析函数使用总结Oracle分析函数使用总结Oracle分析函数使用总结
Oracle到Mysql数据库迁移总结Oracle到Mysql数据库迁移总结Oracle到Mysql数据库迁移总结Oracle到Mysql数据库迁移总结
- **总结**:回顾所学内容,强调Zones 在Oracle Solaris 11 中的关键作用。 #### 总结 通过本课程的学习,学员将全面了解Oracle Solaris 11 Zones 的各个方面,从基本概念到高级管理技巧。这不仅有助于提升个人的...