获取异常';0000-00-00';即使使用resultset.getString()方法,也不能表示为java.sql.Date

获取异常';0000-00-00';即使使用resultset.getString()方法,也不能表示为java.sql.Date,java,mysql,sql,Java,Mysql,Sql,我有一个数据库表,其结构如下: 要检索我使用的数据,请查询从mytable中选择* 在java中,我使用的是resultset rs 我的代码是 if(rs.next()) { str[0] = rs.getString("id").trim(); str[1] = rs.getString("userid").trim(); str[2] = rs.getString("keyword").trim(); str[3] = rs.getString("fiel

我有一个数据库表,其结构如下:

要检索我使用的数据,请查询
从mytable中选择*

在java中,我使用的是
resultset rs

我的代码是

if(rs.next())
{
    str[0] = rs.getString("id").trim();
    str[1] = rs.getString("userid").trim();
    str[2] = rs.getString("keyword").trim();
    str[3] = rs.getString("field").trim();
    str[4] = rs.getString("type").trim();
    str[5] = rs.getString("assignee").trim();
    str[6] = rs.getString("category").trim();
    str[7] = rs.getString("subcategory").trim();
    str[8] = rs.getString("publicationDateFrom").trim();
    str[9] = rs.getString("publicationDateTo").trim();
    str[10] = rs.getString("date").trim();
    str[11] = rs.getString("time").trim();
    str[12] = rs.getString("assigneeNames").trim();
    str[13] = rs.getString("categoryNames").trim();
    str[14] = rs.getString("subcategoryNames").trim();              
}
问题是我总是有例外

Value '0000-00-00' can not be represented as java.sql.Date[Ljava.lang.StackTraceElement;@42c7d3

请给我指出正确的方向。

您需要将
zeroDateTimeBehavior=convertToNull
添加到您的mysql连接URI中。查看更多详细信息

您需要向mysql连接URI中添加
zeroDateTimeBehavior=convertToNull
。查看更多详细信息

您需要向mysql连接URI中添加
zeroDateTimeBehavior=convertToNull
。查看更多详细信息

您需要向mysql连接URI中添加
zeroDateTimeBehavior=convertToNull
。查看更多详细信息首先做一件事。。 将列更改为nullable,并使用以下代码从resultset输入日期

str[10] = rs.getTimestamp("date").toString();
首先做一件事。。 将列更改为nullable,并使用以下代码从resultset输入日期

str[10] = rs.getTimestamp("date").toString();
首先做一件事。。 将列更改为nullable,并使用以下代码从resultset输入日期

str[10] = rs.getTimestamp("date").toString();
首先做一件事。。 将列更改为nullable,并使用以下代码从resultset输入日期

str[10] = rs.getTimestamp("date").toString();

从-

--sql_mode="NO_ZERO_DATE" --sql_mode="STRICT_ALL_TABLES"

然后使用
getString
获取日期,并使用
DateFormat
进行解析。然后在ResultSet中获取它。

用-

--sql_mode="NO_ZERO_DATE" --sql_mode="STRICT_ALL_TABLES"

然后使用
getString
获取日期,并使用
DateFormat
进行解析。然后在ResultSet中获取它。

用-

--sql_mode="NO_ZERO_DATE" --sql_mode="STRICT_ALL_TABLES"

然后使用
getString
获取日期,并使用
DateFormat
进行解析。然后在ResultSet中获取它。

用-

--sql_mode="NO_ZERO_DATE" --sql_mode="STRICT_ALL_TABLES"


然后使用
getString
获取日期,并使用
DateFormat
进行解析。然后在ResultSet中获取它。

您尝试过使用getDate吗?-为什么不让日期列为空?@TimB是的,同样的异常。@即使我正在使用GetStrings,它也会隐式转换为日期吗?您尝试过使用getDate吗?-为什么不让日期列为空?@TimB是的,同样的异常。@即使我正在使用GetStrings,它也会隐式转换为日期吗?您尝试过使用getDate吗?-为什么不让日期列为空?@TimB是的,同样的异常。@即使我正在使用GetStrings,它也会隐式转换为日期吗?您尝试过使用getDate吗?-为什么不让日期列为空?@TimB是的,同样的例外。@所有的都是它隐式转换为日期,即使我使用GetStringMethod但它从不为空,我使用GetStringMethod但它从不为空,我使用GetStringMethod但它从不为空,我正在使用getString方法是的,使其可为null是另一个选项,但是否有可能用这种方式尝试上面的代码可能是它的工作是的,使其可为null是另一个选项,但是否有可能用这种方式尝试上面的代码可能是它的工作是的,使其可为null是另一个选项,但是有没有可能用这种方法来做上面的代码可能是它的工作是的,使它为空是另一种选择,但是有没有可能用这种方法来做上面的代码可能是它的工作