使用Java或者Scala读取MySQL数据库时出现 '0000-00-00' 问题。
原因:
DATE类型 '0000-00-00 00:00:00' 可以在MySQL中作为特殊值存储,但在 java.sql.Date 中是不合法的。 如果JDBC中没有指定zeroDateTimeBehavior值,默认是抛出异常。
解决办法:
1. zeroDateTimeBehavior=convertToNull,返回 null。
2. zeroDateTimeBehavior=round,返回最近的日期,即 0001-01-01。
如:
url = jdbc:mysql://192.168.100.45:3306/base_conf_platform?zeroDateTimeBehavior=convertToNull
url = jdbc:mysql://192.168.100.45:3306/dataspy?characterEncoding=UTF-8&zeroDateTimeBehavior=round