我正在尝试从我的数据库中读取几个日期,但在某些情况下,我得到了'DATE'的'java.sql.SQLException错误格式'。这是我的代码:
Date entryDateD = res.getDate("entryDate");
在调试模式下,我看到entryDateD'1996-9-15'的内容在我的数据库中。 虽然我不得不提到我也从我的数据库中读到了其他日期,我注意到格式为'xxxx-0y-zz'。我想说的是,如果一个月小于10,则在它前面添加一个零,在这种情况下不添加。我怀疑这可能与它有关。 (这个零不出现在数据库本身,不仅在这个日期,而且在任何日期) 提前谢谢:)
答案 0 :(得分:2)
如果将其表示为java.util.Date
,则可以让JDBC驱动程序担心处理数据库的任何格式问题。
至于它在你的显示器中的呈现方式,这取决于你和你对java.text.DateFormat
类的使用。
您通过在应用中将日期表示为java.util.Date
来做正确的事情,但您需要了解格式是与该类型不同的问题。
答案 1 :(得分:2)
只是一个猜测,但是你对entryDate有什么MySQL列类型?
默认情况下,MySQL中的日期类型将生成yyyy-mm-dd格式;缺少的零使我相信列类型可能是数据库级别的varchar或其他非日期类型。
这可能是您在Java级别出现问题的原因......
答案 2 :(得分:0)
Java有一个java.util.Date子类,名为java.sql.Date
创建Java SQL Date的最简单方法是使用Utility Date调用构造函数。
java.util.Date uDate = res.getDate("entryDate");
java.sql.Date sDate = new java.sql.Date(uDate.getTime());
答案 3 :(得分:0)
如果您希望res.getDate("entryDate")
为 YYYY-MM-DD ,则需要在查询中投放日期,如下所示:
SELECT
...
CAST(entryDate as DATE)as entryDate,
...
FROM your_table;
如果您认为这有用,那么请执行upVote以使其对其他人有用。