我们的是DB在Solaris10下
开发在windows下,出现的情况和你的恰好相反
在windows下用StartDate > '2006-01-01'查询出异常,而在Solaris10没有问题我想会不会是因为Date型在windows和Solaris10的系统平台下格式不同
结果在跨平台访问时出现类型转换异常而相同平台下则不用转换

解决方案 »

  1.   

    where条件改成TO_CHAR(StartDate, 'YYYY-MM-DD') > '2006-01-01'则正常。这个是标准用法,不用猜测了。1 用to_char
    2 用 PreparedStatement 然后setDate() 进行赋值推荐第二种
      

  2.   

    可以采用to_date():where startdate>to_date('20060101','yyyymmdd'),在字段上使用函数不是一种很好的习惯,这种情况下,oracle不会使用索引来进行查找,除非使用函数索引,否则sql语句执行效率不高.
    在不同系统中的情况不同,是由于oracle连接的默认日期格式不同造成的
      

  3.   

    oracle上日期不经常用to_xxx来转换么?