无法将“ 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

回到顶部