java中Date类型默认是格林尼治时间,而数据库驱动mysql-connector-java的jar包中封装了将格林尼治时间转换为yyyy-MM-dd HH:mm:ss或yyyy-MM-dd的功能,前者对应的数据表使用的是datetime类型,后者对应的数据表使用的是date类型。只有当Mysql数据库和数据库驱动jar包mysql-connector-java版本对应时,才能转换成功!
当版本不匹配时,会出现如下问题:
Incorrect datetime value: '' for column 'ordertime' at row 1 Query
这是因为Mysql数据库和数据库驱动Mysql-connector-java的jar包版本不一致所导致的。例如:本人使用的Mysql是5.7的,项目中使用的是Mysql-connector-java-5.0.4-bin.jar,这是不匹配的,将数据库驱动换成5.1.7的就好了。
若匹配后,测试如下:
1.数据表使用datetime类型时,显示yyyy-MM-dd HH:mm:ss
2.数据表使用date类型时,显示yyyy-MM-dd