我的问题是我不知道如何制作代表'0000-00-00 00:00:00'
日期时间的java.sql.Timestamp对象。
我有一个数据库,其字段声明为:
`a_field_name` datetime NOT NULL DEFAULT '0000-00-00 00:00:00'
我想制作一个准备好的语句,删除日期时间为零的条目。 例如:
String sql = "DELETE from `table` WHERE a_field_name = ?";
PreparedStatement stmt = connection.prepareStatement(sql);
stmt.setTimestamp(1, zeroTimestamp);
zeroTimestamp
对象就是问题所在。 :)
答案 0 :(得分:3)
JDBC Timestamp
对象不能代表MySQL的特殊全零日期。您可以使用字符串:
String sql = "DELETE from `table` WHERE a_field_name = ?";
PreparedStatement stmt = connection.prepareStatement(sql);
stmt.setString(1, "0000-00-00 00:00:00");
如果要恢复这些值,还必须添加连接属性noDatetimeStringSync=true
;否则,从数据库获取值时,驱动程序将抛出异常。请在此处查看完整详细信息:http://dev.mysql.com/doc/refman/5.6/en/connector-j-installing-upgrading.html