SELECT DBTIMEZONE FROM DUAL;看看你设置时区对不对?如果不对可以修改。

解决方案 »

  1.   

    用TO_CHAR(sysdate, 'IYYY-MM-DD HH24:MI:SS') 多好
      

  2.   

    同意hzf005(红蜘蛛),估计是你的时区设的不对,或是你机器的时区设得不对
      

  3.   

    机器时区绝对正确,这点不用怀疑
    sqlplus中:select sessiontimezone, dbtimezone from dual;
    结果:SESSIONTIMEZOME            DBTIME
    ------------------------   ------------------------------------
    +08:00                     -7:00而且,在sqlplus中执行相同的SQL插入语句插入的是当地时间
    可在Java Servlet里使用JDBC执行相同的语句,却插入国际标准时间还有,同样的程序在Oracle10g下面执行,插入的时间为当地时间
    怎么回事?两套一同唯一不同就是Oracle,可能还包括其中带的JDBC驱动
      

  4.   

    格式为:”YYMMDDmmhhss032+”其中032+表示北京时间,如2003 年12 月3 日下
    午8 点6 分16 秒,则应为: “031203200616032+”
    在java里这样写就没问题了
      

  5.   

    翻阅了大量文档资料,终于搞定了,
    在JDBC连接后,
    首先执行一条ALTER SESSION SET TIME_ZONE='+08:00';
    可能是JDBC默认的时区是'00:00'搞定,多谢各位,放粉