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