暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Oracle 当位于EST区域时,在AWS RDS实例中使用GMT/UTC的注意事项

ASKTOM 2019-02-08
921

问题描述

背景:
1.我刚刚在东海岸的AWS RDS实例上创建了一个数据库。
2.我注意到,当我在AWS中设置DB时,时区设置为GMT/UTC (格林威治标准时间)。
3.我注意到,当我从实例本身查询
针对AWS数据库以及我们的一些前提数据库,我得到以下内容 :( 这是从5日开始的...)

AWS: 

SESSIONTIMEZONE            DBTIMEZONE SYSTIMESTAMP                               SYSDATE                
-05:00                     +00:00     2/5/2019 5:59:40.057125 PM +00:00          2/5/2019 5:59:40 PM    


On Prem:

SESSIONTIMEZONE            DBTIMEZONE SYSTIMESTAMP                               SYSDATE                
-05:00                     +00:00     2/5/2019 12:59:03.440706 PM -05:00         2/5/2019 12:59:03 PM   

专家解答

SYSDATE不受任何影响,因为它是一个日期 (不包含时区信息),因此您将从服务器 * 获取日期 *。

SYSTIMESTAMP和其他时间戳函数 * 可能 * 受时区影响。数据库有一个时区,但这可能与您的会话时区完全不同。我住在珀斯,所以 (默认情况下) 我的数据库和会话区域是相同的。

SQL> select sessiontimezone from dual;

SESSIONTIMEZONE
----------------------------------------------------------
+08:00

SQL> select dbtimezone from dual;

DBTIME
------
+00:00



但是,如果我从某个地方访问这个数据库,那么我可能想在 * 我的 * 本地时区中查看时间等,所以我可以使用适当的函数来做到这一点:

SQL> alter session set time_zone = '+02:00';

Session altered.

SQL> select localtimestamp from dual;

LOCALTIMESTAMP
----------------------------------------------------------
12-FEB-19 04.16.24.994000 AM


(请注意-我在这里做了一个明确的更改,但是通常您的客户端将在操作系统级别的连接上设置时区,并且会话将只接收它)

这不会影响数据库服务器上的时区


SQL> select systimestamp from dual;

SYSTIMESTAMP
----------------------------------------------------------
12-FEB-19 10.16.12.910000 AM +08:00



希望这有所帮助
文章转载自ASKTOM,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论