无法将“ 0000-00-00 00:00:00”转换为TIMESTAMP
字段定义
/** Date. */ @Column(columnDefinition = "datetime")
private Date date;
二传手
public void setDate(final Date date) { DateFormat dfmt = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
try {
this.date = dfmt.parse(dfmt.format(date));
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
有谁知道如何将“零日期”转换为适当的值?因为我有错误:
Cannot convert value '0000-00-00 00:00:00' from column 13 to TIMESTAMP
即使我像这样设置“默认”字段和设置器:
/** Date. */ @Column
private Date date;
public void setDate(final Date date) {
this.date = date;
}
我仍然会有同样的问题。
回答:
在这里,我将做出一个疯狂的猜测,即您正在使用MySQL
:-)它使用“零日期”作为特殊的占位符 -不幸的是,默认情况下JDBC无法处理它们。
解决方案是将“ zeroDateTimeBehavior =
convertToNull”指定为MySQL连接的参数(在数据源URL中或作为其他属性),例如:
jdbc:mysql://localhost/myDatabase?zeroDateTimeBehavior=convertToNull
这将导致将所有此类值检索为NULL。
以上是 无法将“ 0000-00-00 00:00:00”转换为TIMESTAMP 的全部内容, 来源链接: utcz.com/qa/421291.html