oracle的sysdate,systimestamp,current_date,current_timestamp

本文通过实验对比了Oracle数据库中sysdate、systimestamp、current_date和current_timestamp在不同系统时区(CST与UTC)下的表现,揭示了它们与数据库服务器时区的关系,以及会话时区如何影响CURRENT_TIMESTAMP的显示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、当前数据库服务器系统时区为CST

set line 200
col SYSDATE for a20
col SYSTIMESTAMP for a40
col CURRENT_DATE for a20
col CURRENT_TIMESTAMP for a40
select sysdate,systimestamp,current_date,current_timestamp from dual;

SQL> select sysdate,systimestamp,current_date,current_timestamp from dual;

SYSDATE 	         SYSTIMESTAMP			             CURRENT_DATE	        CURRENT_TIMESTAMP
-------------------- ---------------------------------------- -------------------- ----------------------------------------
2020-07-01 13:37:40  01-JUL-20 01.37.40.850582 PM +08:00      2020-07-01 13:37:40  01-JUL-20 01.37.40.850590 PM +08:00


alter session set time_zone='+00:00';

SQL> select sysdate,systimestamp,current_date,current_timestamp from dual;

SYSDATE 	         SYSTIMESTAMP			             CURRENT_DATE	        CURRENT_TIMESTAMP
-------------------- ---------------------------------------- -------------------- ----------------------------------------
2020-07-01 13:38:14  01-JUL-20 01.38.14.566978 PM +08:00      2020-07-01 05:38:14  01-JUL-20 05.38.14.566985 AM +00:00


alter database set time_zone='+00:00';

shutdown immediate;

startup

SQL> select sysdate,systimestamp,current_date,current_timestamp from dual;

SYSDATE 	         SYSTIMESTAMP			             CURRENT_DATE	       CURRENT_TIMESTAMP
-------------------- ---------------------------------------- -------------------- ----------------------------------------
2020-07-01 13:40:27  01-JUL-20 01.40.27.382635 PM +08:00      2020-07-01 13:40:27  01-JUL-20 01.40.27.382642 PM +08:00

二、当前数据库服务器系统时区为UTC

SQL> select sysdate,systimestamp,current_date,current_timestamp from dual;

SYSDATE 	         SYSTIMESTAMP			                   CURRENT_DATE	        CURRENT_TIMESTAMP
-------------------- ---------------------------------------- -------------------- ----------------------------------------
2020-07-01 05:43:09  01-JUL-20 05.43.09.674300 AM +00:00      2020-07-01 05:43:09  01-JUL-20 05.43.09.674303 AM +00:00


alter database set time_zone='+08:00';

shutdown immediate;

startup


SQL> select sysdate,systimestamp,current_date,current_timestamp from dual;

SYSDATE 	           SYSTIMESTAMP			                   CURRENT_DATE	         CURRENT_TIMESTAMP
-------------------- ---------------------------------------- -------------------- ----------------------------------------
2020-07-01 05:44:42  01-JUL-20 05.44.42.375811 AM +00:00      2020-07-01 05:44:42  01-JUL-20 05.44.42.375814 AM +00:00


alter session set time_zone='+08:00';

SQL> select sysdate,systimestamp,current_date,current_timestamp from dual;

SYSDATE 	         SYSTIMESTAMP			                  CURRENT_DATE	        CURRENT_TIMESTAMP
-------------------- ---------------------------------------- -------------------- ----------------------------------------
2020-07-01 05:46:58  01-JUL-20 05.46.58.744106 AM +00:00      2020-07-01 13:46:58  01-JUL-20 01.46.58.744111 PM +08:00

从实验结果可以得到如下结论:

(1)sysdate的时间和数据库服务器的系统时间是一致的。
(2)会话时区继承自操作系统时区,CURRENT_TIMESTAMP和当前会话的时区有关系,返回的日期和时间会根据时区转换。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

#慧#

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值