使用hibernate+mysql5.0做了个练习,其中有个字段需要保存时和分,所以,数据库中用了TIMESTAMP类型,hibernate配置文件中为默认的date类型。结果保存时报以下错误:>>com.mysql.jdbc.MysqlDataTruncation: Data truncation: Incorrect datetime value: '1970-01-01' for column 'startDate' at row 1
>> at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2868)
>> at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1573)
>> at com.mysql.jdbc.ServerPreparedStatement.serverExecute(ServerPreparedStatement.java:1160)
>> at com.mysql.jdbc.ServerPreparedStatement.executeInternal(ServerPreparedStatement.java:685)
>> at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1400)
>>...已知:
1、编码绝对没有问题,数据库和程序连接中都是utf8.
2、插入的数据绝对不过长,只是在程序中 new了个date插入了进入。
求高手的完美解决方案。
>> at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2868)
>> at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1573)
>> at com.mysql.jdbc.ServerPreparedStatement.serverExecute(ServerPreparedStatement.java:1160)
>> at com.mysql.jdbc.ServerPreparedStatement.executeInternal(ServerPreparedStatement.java:685)
>> at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1400)
>>...已知:
1、编码绝对没有问题,数据库和程序连接中都是utf8.
2、插入的数据绝对不过长,只是在程序中 new了个date插入了进入。
求高手的完美解决方案。
`id` int(11) NOT NULL auto_increment COMMENT '缂栧彿',
`startDate` timestamp NULL default NULL COMMENT '寮€鏈烘椂闂?,
PRIMARY KEY (`id`,`castingType`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8 COMMENT='packagename=task'
date类型太短,只能描述年月日。
还是使用timestamp类型吧。hibernate支持的。