求助:sysdate与服务器系统时间不一致,如何解决?

时间:2022-07-19 14:36:36
在数据库里用select sysdate from dual查出的值与数据库所在的服务器系统时间相差有16个小时,请教各位高手是怎么回事?
数据库是oracle9i的,服务器是win2003的。

4 个解决方案

#1


估计是时区设置在搞鬼,执行下面的语句看看:

SELECT SYSDATE,CURRENT_DATE FROM DUAL;

SELECT CURRENT_TIMESTAMP,LOCALTIMESTAMP,SYSTIMESTAMP FROM DUAL;

SELECT DBTIMEZONE,SESSIONTIMEZONE FROM DUAL;

#2


時区不一样的話,会出现这种情況

#3


执行SELECT SYSDATE,CURRENT_DATE FROM DUAL;
得到    SYSDATE CURRENT_DATE
1 1/15/2006 19:50 1/16/2006 11:50

执行SELECT CURRENT_TIMESTAMP,LOCALTIMESTAMP,SYSTIMESTAMP FROM DUAL
得到    CURRENT_TIMESTAMP LOCALTIMESTAMP SYSTIMESTAMP
1 16-JAN-06 11.51.41.656000 AM +08:00 16-JAN-06 11.51.41.656000 AM 16-JAN-06 11.51.41.656000 AM +08:00

执行SELECT DBTIMEZONE,SESSIONTIMEZONE FROM DUAL
得到    DBTIMEZONE SESSIONTIMEZONE
1 GMT  +08:00

请问怎么解决呢?

#4


谢谢各位,我找到解决办法了(但不适用于跨国际性的公司)
我把+8时区改到-8时区就可以了

#1


估计是时区设置在搞鬼,执行下面的语句看看:

SELECT SYSDATE,CURRENT_DATE FROM DUAL;

SELECT CURRENT_TIMESTAMP,LOCALTIMESTAMP,SYSTIMESTAMP FROM DUAL;

SELECT DBTIMEZONE,SESSIONTIMEZONE FROM DUAL;

#2


時区不一样的話,会出现这种情況

#3


执行SELECT SYSDATE,CURRENT_DATE FROM DUAL;
得到    SYSDATE CURRENT_DATE
1 1/15/2006 19:50 1/16/2006 11:50

执行SELECT CURRENT_TIMESTAMP,LOCALTIMESTAMP,SYSTIMESTAMP FROM DUAL
得到    CURRENT_TIMESTAMP LOCALTIMESTAMP SYSTIMESTAMP
1 16-JAN-06 11.51.41.656000 AM +08:00 16-JAN-06 11.51.41.656000 AM 16-JAN-06 11.51.41.656000 AM +08:00

执行SELECT DBTIMEZONE,SESSIONTIMEZONE FROM DUAL
得到    DBTIMEZONE SESSIONTIMEZONE
1 GMT  +08:00

请问怎么解决呢?

#4


谢谢各位,我找到解决办法了(但不适用于跨国际性的公司)
我把+8时区改到-8时区就可以了