关于Java读取mysql中date类型字段默认值'0000-00-00'的问题

    今天在作项目过程当中,查询一个表中数据时总碰到这个问题:
     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 "。解决方法也是同样。
相关文章
相关标签/搜索