【问题标题】:Getting a Date datatype in mysql [duplicate]在mysql中获取日期数据类型[重复]
【发布时间】:2014-02-04 19:06:31
【问题描述】:

我正在尝试从我的 SQL 数据库中获取 Date 数据类型。 但是我得到了这个错误

java.sql.SQLException: Value '0000-00-00' can not be represented as java.sql.Date

ResultSet rs = stmt.executeQuery("select movie_id, movie_name, movie_dateBorrowed from  movie_tbl where movie_borrower = '"+userUserID+"'");
                if(rs.next()){
                    String moviename = rs.getString("movie_name");
                    Date moviedateborrowed = rs.getDate("movie_dateBorrowed");
                    if(movieDB!="0000-00-00"){
                        Date moviedateborrowed = rs.getDate("movie_dateBorrowed");
                        dates.add(moviedateborrowed);        
                    }
                    else{
                        JOptionPane.showMessageDialog(null, "Unable.");
                    }
                }

任何帮助都会让我开心。谢谢

PS。我使用 Netbeans 作为我的 IDE。

【问题讨论】:

  • “movie_dateBorrowed”列的列类型是什么?确定日期
  • 我认为这是一个更好的匹配:stackoverflow.com/questions/13633747/… 它有不同的好答案。
  • @Arvind 是的,这是一个约会。
  • 检查您的 rs.getDate("movie_dateBorrowed") 是否为“0000-00-00”。像三元运算符一样使用内联代码:检查 (getdate=="0000-00-00")?"":getdate()。但是 0000-00-00 并不是任何人都可以看到和判断的正确数据。插入此类数据时请注意使用NULL。
  • 我在毕业设计中遇到过类似的问题。因此,经过大量搜索,我决定将日期存储为字符串并检索为字符串。如果您只是存储在数据库中,然后将其显示在数据库中,那么这可能会解决您的问题。如果您的问题是其他问题,请说您想查找在两个日期之间完成的预订,那么您可能会遇到小问题,但这也有解决方案。一切顺利。如果您有更多疑问,随时准备提供帮助。

标签: java netbeans


【解决方案1】:

对于德比Date == 0002-11-30 的最小值

其他数据库可能有其他限制。

像这样测试它

 if(rs.next()){
      String moviename = rs.getString("movie_name");
      movies.add(moviename);
      String DateStr = rs.getString("movie_dateBorrowed");
      if (DateStr != "0000-00-00") {
         Date moviedateborrowed = rs.getDate("movie_dateBorrowed");
         dates.add(moviedateborrowed);
      } else ...
 ...
 }

在 else 语句中你可以使用dates.add 来添加0002-11-30(德比)

【讨论】:

  • 哦。对不起!我正忙着做其他项目,我忘了再次检查stackoverflow。顺便说一句,我尝试了您的解决方案,但仍然出现相同的错误,我尝试将 else{ JOptionPane.showMessageDialog(null, "The date is not valid.");但是这并没有出现,所以这意味着它执行if。但仍然感谢您的回答。抱歉这么晚才回复。
  • @CronasDeSe:你能告诉我们DateStr的值吗:来自代码String DateStr = rs.getString("movie_dateBorrowed");
  • 等等,还是不显示。我试图删除 rs.getDate("movie_dateBorrowed");。我只是把 String DateStr = rs.getString("movie_dateBorrowed"); System.out.println(DateStr);但它仍然显示相同的错误。
  • update您的问题并在System.out.println(DateStr);部分添加新代码
  • 已更新。谢谢。很抱歉回复晚了,因为上周是我们的地狱一周。
猜你喜欢
  • 2012-11-26
  • 2020-08-10
  • 2017-09-02
  • 2014-05-04
  • 1970-01-01
  • 2013-06-24
  • 1970-01-01
  • 2013-06-06
  • 1970-01-01
相关资源
最近更新 更多