今天在做项目过程中,查询一个表中数据时总碰到这个问题:

     java.sql.SQLException:Value '0000-00-00' can not be represented as java.sql.Date
查看数据库,发现某一字段为date类型,字段值为'0000-00-00' ;查看代码,我用的是rs.getString("字段名");于是把代码改成getDate("字段名");问题依旧!
    查找资料发现:在数据库连接url后面加上zeroDateTimeBehavior=convertToNull,问题解决。
 
   原来,"0000-00-00"在mysql中是个特殊值,作为date类型变量的默认值。而Java却不认账,把它作为非法值看待,导致出错。解决办法如上所述,资料上还有一种解决方式,时间关系我没有试,不知结果如何:zeroDateTimeBehavior=round
 
   其实,mysql中datetime类型的变量会遇见相似的问题,只不过它的默认值是"0000-00-00 00:00:00 "。解决方法也是一样。

相关文章:

  • 2021-05-17
  • 2022-12-23
  • 2021-09-27
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2021-05-19
  • 2021-11-14
  • 2022-12-23
  • 2022-02-16
  • 2022-12-23
  • 2021-11-19
  • 2022-12-23
相关资源
相似解决方案