【问题标题】:PreparedStatement and DateTimePreparedStatement 和 DateTime
【发布时间】:2013-11-27 18:57:36
【问题描述】:

我正在尝试使用 Joda 库中的 DateTime,但我意识到 PreparedStatements 不支持 DateTime。我能做些什么呢?我可以设置 TimeStamp 但这不是我真正想要的。有解决方法还是我必须使用时间戳?在我的 MySQL 数据库中,我还选择了 DateTime 作为类型。

      DatabaseConnection dbConnect = new DatabaseConnection();
      PreparedStatement query =dbConnect.getConnect().prepareStatement(sql);

      query.setInt(1, c.getMemberId());
      query.setDateTime(2, c.getStartDate());
      query.setDateTime(3, c.getEndDate());

【问题讨论】:

  • 使用时间戳有什么问题?为什么它不适合您的用例?
  • 我正在使用 Joda 的 DateTime。其实我什至不想要时间。我只想要日期、月份和年份。

标签: java mysql datetime jodatime


【解决方案1】:

setDate(java.sql.Date) 似乎是您要找的东西:

 query.setDate(2, new java.sql.Date(c.getStartDate().getMillis());

【讨论】:

    【解决方案2】:

    在您的PreparedStatement 中,对您的DateTime 对象调用toDate() 方法。

    如果你对时间不感兴趣,不妨把你的数据库列改成DATE

    【讨论】:

      猜你喜欢
      • 2012-10-08
      • 2012-10-06
      • 2012-06-01
      • 2016-04-25
      • 2011-03-20
      • 2011-03-17
      • 2020-09-24
      • 1970-01-01
      相关资源
      最近更新 更多