Java JDBC日期格式错误
我试图从数据库中读取几个日期,但在某些情况下,我会得到一个“java.sql.SQLException日期格式错误”。这是我的密码: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个月,在它前面加一个零,在这种情况下不加。我怀疑这可
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您实际上是对的!!太多了!!好吧,这使它看起来像一个相当愚蠢的问题,但它一直在工作的每一个其他输入我给它!!该死的墨菲定律!!把你的评论做成一个答案,这样如果你愿意,我就可以接受:)哦,不,那不是做这件事的方式。哦,不,那不是做这件事的方式。