当我们通过jdbcdao向mysql数据库插入日期时,如果程序会抛出下面的异常:
com.mysql.jdbc.MysqlDataTruncation: Data truncation: Incorrect date value: 'Sun Jul 28 00:00:00 CST 1996' for column 'birthday' at row 1
原因:我们插入的日期时java.util.Date类型的,而mysql数据库中的date是java.sql.Date类型的,所以会抛出异常
解决办法:将java.util.Date类型的日期转换为java.sql.Date类型,然后在插入数据库,就不会抛异常了,具体转换代码如下:
// util.date转换成sql.date
java.util.Date utilDate = new java.util.Date(); //获取当前时间
System.out.println(utilDate);
java.sql.Date sqlDate = new java.sql.Date(utilDate.getTime());
System.out.println(sqlDate);
// sql.date转换成util.date
java.sql.Date sqlDate1 = new java.sql.Date(new java.util.Date().getTime());
System.out.println(sqlDate1);
java.util.Date utilDate1 = new java.util.Date(sqlDate1.getTime());
System.out.println(utilDate1);