在oracle 10g中执行此SQL后:
SELECT SYSDATE, CURRENT_TIMESTAMP FROM DUAL
我收到了这个奇怪的输出:
时间差的原因是什么?
在oracle 10g中执行此SQL后:
SELECT SYSDATE, CURRENT_TIMESTAMP FROM DUAL
我收到了这个奇怪的输出:
时间差的原因是什么?
CURRENT_DATE
和CURRENT_TIMESTAMP
返回会话时区中的当前日期和时间.
SYSDATE
和SYSTIMESTAMP
返回系统日期和时间,即数据库所在系统的日期和时间.
如果您的客户端会话与数据库所在的服务器不在同一时区(或者通过NLS设置表示无论如何不在同一时区),混合使用SYS*
和CURRENT_*
函数将返回不同的值.它们都是正确的,它们只是代表不同的事物.看起来您的服务器(或自认为)处于+4:00时区,而您的客户端会话处于+4:30时区.
如果时钟不同步,你也可能会看到时间上的微小差异,这似乎不是问题.