我有一个数据库表,其结构如下:
要检索我使用过查询Select * from 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
请指出我正确的方向。
答案 0 :(得分:3)
您需要将zeroDateTimeBehavior=convertToNull
添加到您的mysql连接URI。查看here了解详情
答案 1 :(得分:0)
首先做一件事...... 将列更改为可为空并使用以下代码从结果集中获取数据
str[10] = rs.getTimestamp("date").toString();
答案 2 :(得分:0)
使用 -
启动mySql--sql_mode="NO_ZERO_DATE" --sql_mode="STRICT_ALL_TABLES"
然后使用getString
获取您的日期并使用DateFormat
进行解析。然后在ResultSet中获取它。