SYSDATE和SYSTIMESTAMP的值并不受数据库參数DBTIMEZONE的影响,操作系统时区的环境变量(如TZ)会影响它们的输入,由于SYSDATE和SYSTIMESTAMP实际是调用操作系统底层接口直接返回值。

DBTIMEZONE的设置仅仅会影响数据库内两种数据类型的值:一种是TimeStamp with Time Zone,还有一种是TimeStamp with Local Time Zone。

操作系统层面TZ环境变量的设置直接影响sysdate和systiestamp的值,同一时候也会影响数据库日志写入的时间戳。

先来下面一段官方相关解释:

SYSTIMESTAMP is the timestamp on the server machine itself and is obtained on Unix platforms by calling "
GetTimeOfDay " and on Windows by calling "GetSystemTime" to get the servers local time.

This means that SYSTIMESTAMP, just like SYSDATE depends on Unix platforms on the UNIX time configuration (= Unix TZ variable) for the Unix session when the database and listener where started.

The SYSDATE and SYSTIMESTAMP function simply performs a system-call to the Operating System to get the time (a "gettimeofday" call).

下面通过简单的实验来证明:

SQL> select to_char(sysdate,'DD-MON-YY HH24:MI:SS') from dual;

TO_CHAR(SYSDATE,'DD-MON-YYHH24:MI:SS')

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

17-OCT-14 11:51:25             <<<<<这里输出日期为17号

SQL> connect sys/oracle@ora10g as sysdba

Connected.

SQL> select to_char(sysdate,'DD-MON-YY HH24:MI:SS') from dual;

TO_CHAR(SYSDATE,'DD-MON-YYHH24:MI:SS')

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

17-OCT-14 11:51:33

SQL> !

[oracle@tivoli02 ~]$ date

Fri Oct 17 11:51:38 CST 2014    <<<<<这里输出日期为17号

以上输出正常的时间,接下来改动时区环境变量之后做对照

export TZ=America/Anchorage

SQL> select to_char(sysdate,'DD-MON-YY HH24:MI:SS') from dual;

TO_CHAR(SYSDATE,'DD-MON-YYHH24:MI:SS')

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

16-OCT-14 19:53:50                        <<<<<这里输出日期为16号

SQL> connect sys/oracle@ora10g as sysdba

Connected.

SQL> select to_char(sysdate,'DD-MON-YY HH24:MI:SS') from dual;

TO_CHAR(SYSDATE,'DD-MON-YYHH24:MI:SS')

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

16-OCT-14 19:53:58

SQL> !

[oracle@tivoli02 ~]$ date

Thu Oct 16 19:54:06 AKDT 2014      <<<<<这里输出日期为16号

查看数据库alert日志:

Fri Oct 17 11:51:57 CST 2014      
<<<停库日期为17号

ALTER DATABASE DISMOUNT

Completed: ALTER DATABASE DISMOUNT

ARCH: Archival disabled due to shutdown: 1089

Shutting down archive processes

Archiving is disabled

Archive process shutdown avoided: 0 active

ARCH: Archival disabled due to shutdown: 1089

Shutting down archive processes

Archiving is disabled

Archive process shutdown avoided: 0 active

Thu Oct 16 19:53:32 AKDT 2014       <<<启库日期为16号

Starting ORACLE instance (normal)

LICENSE_MAX_SESSION = 0

LICENSE_SESSIONS_WARNING = 0

Picked latch-free SCN scheme 3

结合以上实验做阐述,请一定正常设置操作系统环境变量,避免不必要的麻烦。

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

本文来自于我的技术博客 http://blog.csdn.net/robo23

转载请标注源文链接,否则追究法律责任!

最新文章

  1. NHibernate之映射文件配置说明
  2. request对象和response对象
  3. Apache MiNa 实现多人聊天室
  4. 一些初级Java错误,不定期增加
  5. YTU 2925: 文件操作--文本文件读入
  6. javaSE第十四天
  7. 转载:T-SQL语句大全
  8. ArcGIS学习记录&mdash;属性表的编辑与修改
  9. poj3270Cow Sorting(置换)
  10. iOS开发——总结篇&amp;IOS开发基础知识
  11. thinkphp中的钩子_什么是钩子?
  12. 软工+C(2017第1期) 题目设计、点评和评分
  13. hdu5303Delicious Apples
  14. 如何将JAR包发布到Maven中央仓库?
  15. 【spring】task 任务调度(定时任务)
  16. mssql 创建存储过程简单实例
  17. python用unittest+HTMLTestRunner的框架测试并生成测试报告
  18. wallet.metamask.io 网页版钱包 connecting unknown network导致页面卡住
  19. 解决微信video全屏的问题,不在本页面播放
  20. ES6模块的import和export用法

热门文章

  1. karma+requirejs+angular 测试
  2. jsp学习笔记 - 内置对象 config
  3. 【Linux】centos7 添加脚本到/etc/rc.local文件里,实现开机自启
  4. jmeter的JDBC Request接口测试
  5. 题解 [USACO18DEC]Balance Beam
  6. &lt;MyBatis&gt;入门七 缓存机制
  7. java基数排序
  8. 在vue项目中快速使用element UI
  9. BZOJ 4415 洛谷 3988 [Shoi2013]发牌
  10. How Can You Tell the Difference Between LINQ Methods and Query Builder Methods?