求教ORACLE中sysdate和current_timestamp的区别

转载地址:https://zhidao.baidu.com/question/90907126.html

问题描述:由于数据库服务器中oracle时间不对,查看sysdate时时间延迟8小时。但是操作系统事件时正确的。重启了oracle服务之后sysdate就对了,但过了半天之后sysdate又延迟8个多小时。我就取了current_timestamp的时间,一直是对的。网上查了也没有说sysdate和current_timestamp二者有什么区别,我很疑惑、很痛苦,请同行解答二者之区别,感激不尽!
 

亲身经历:我在公司里也经常遇到时差的问题,比如邮箱时间动不动就与美国相差八个小时。

问题回答:

sysdate返回的是服务器的当前时间;
sql:select sysdate from dual;此时查询的是日期的类型。
current_timestamp:它和设置的时区是有一定关系的。返回的日期和时间会根据时区转换过的

所以:current_timestamp返回的时间,是已经被时区处理过的时间。

后记:其实在Oracle系统中,时间的数据类型是Date,在插入时间的时候,可以使用sysdate,也可以使用current_timestamp。

猜你喜欢

转载自blog.csdn.net/yanluandai1985/article/details/81667125
今日推荐