Java JDBC日期格式错误

Java JDBC日期格式错误,java,mysql,exception,jdbc,Java,Mysql,Exception,Jdbc,我试图从数据库中读取几个日期,但在某些情况下,我会得到一个“java.sql.SQLException日期格式错误”。这是我的密码: Date entryDateD = res.getDate("entryDate"); 在调试模式下,我看到EntryDate'1996-9-15'的内容与我的数据库中的一样。。 尽管我不得不提到,我也从我的数据库中读取了其他日期,我注意到这些日期的格式为“xxxx-0y-zz”。我想说的是,如果一个月少于10个月,在它前面加一个零,在这种情况下不加。我怀疑这可

我试图从数据库中读取几个日期,但在某些情况下,我会得到一个“java.sql.SQLException日期格式错误”。这是我的密码:

Date entryDateD = res.getDate("entryDate");
在调试模式下,我看到EntryDate'1996-9-15'的内容与我的数据库中的一样。。 尽管我不得不提到,我也从我的数据库中读取了其他日期,我注意到这些日期的格式为“xxxx-0y-zz”。我想说的是,如果一个月少于10个月,在它前面加一个零,在这种情况下不加。我怀疑这可能与此有关。 (此零不会出现在数据库本身中,尽管不仅出现在该日期,而且出现在任何日期)
thanx prevance:)

如果您将其表示为
java.util.Date
,您的优势是允许JDBC驱动程序担心处理数据库的任何格式问题

至于它在显示中的呈现方式,这取决于您和您对
java.text.DateFormat
类的使用


您在应用程序中将日期表示为
java.util.date
,这是正确的做法,但您需要了解格式是与类型不同的问题。

如果将其表示为
java.util.date
,您的优势是允许JDBC驱动程序处理数据库的任何格式问题

至于它在显示中的呈现方式,这取决于您和您对
java.text.DateFormat
类的使用


您在应用程序中将日期表示为
java.util.date
,这是正确的做法,但您需要了解格式是与类型不同的问题。

只是一个猜测,但entryDate的MySQL列类型是什么

默认情况下,MySQL中的日期类型将生成yyyy-mm--dd格式;缺少零使我相信列类型可能是varchar或其他DB级别的非日期类型


这可能是Java级别出现问题的原因…

只是一个猜测,但是entryDate的MySQL列类型是什么呢

默认情况下,MySQL中的日期类型将生成yyyy-mm--dd格式;缺少零使我相信列类型可能是varchar或其他DB级别的非日期类型


这可能是Java级别出现问题的原因…

Java有一个子类Java.util.Date,名为

创建JavaSQL日期的最简单方法是使用实用程序日期调用构造函数

java.util.Date uDate = res.getDate("entryDate");
java.sql.Date sDate  = new java.sql.Date(uDate.getTime());

Java有一个子类Java.util.Date,称为

创建JavaSQL日期的最简单方法是使用实用程序日期调用构造函数

java.util.Date uDate = res.getDate("entryDate");
java.sql.Date sDate  = new java.sql.Date(uDate.getTime());

如果您想将
res.getDate(“entryDate”)
转换为YYYY-MM-DD,则需要在查询中转换为日期,如下所示:

SELECT
...
CAST(entryDate as DATE)as entryDate,
...
FROM your_table;

如果您觉得这很有帮助,那么请进行投票,使其对其他人有用。

如果您想将
res.getDate(“entryDate”)
转换为YYYY-MM-DD则需要在查询中转换为日期,如下所示:

SELECT
...
CAST(entryDate as DATE)as entryDate,
...
FROM your_table;

如果你觉得这很有帮助,那么就投票让它对其他人有用。

Stab in the dark,但是什么样的MySQL列类型是entryDate??默认情况下,日期列将生成yyyy-mm--dd格式,因此缺少的零使我相信该列类型可能是varchar或DB级别的其他非日期类型。omg您实际上是对的!!太多了!!好吧,这使它看起来像一个相当愚蠢的问题,但它一直在工作的每一个其他输入我给它!!该死的墨菲定律!!把你的评论做成一个答案,这样如果你愿意,我就可以接受:)直言不讳,但是什么样的MySQL列类型是entryDate??默认情况下,日期列将生成yyyy-mm--dd格式,因此缺少的零使我相信该列类型可能是varchar或DB级别的其他非日期类型。omg您实际上是对的!!太多了!!好吧,这使它看起来像一个相当愚蠢的问题,但它一直在工作的每一个其他输入我给它!!该死的墨菲定律!!把你的评论做成一个答案,这样如果你愿意,我就可以接受:)哦,不,那不是做这件事的方式。哦,不,那不是做这件事的方式。