【问题标题】:How to set Current date to MySQL date column from Java?如何从 Java 将当前日期设置为 MySQL 日期列?
【发布时间】:2010-03-07 08:04:48
【问题描述】:

我在一个表中有一个 DATE 数据类型的 mysql 列。我想从我的 java 代码中以 YYYY-MM-DD 格式设置该列的值

我使用以下代码来测试这些格式..

Calendar c = Calendar.getInstance();
c.setTime(new Date());
String d = c.YEAR+ "-"+c.MONTH+"-"+c.DATE;

但如果我在控制台中打印出该值,我会得到一些奇怪的输出。请帮忙。我还能如何做到这一点?

【问题讨论】:

    标签: java mysql


    【解决方案1】:

    在 JDBC 中,您可以使用 setDate() 方法在准备好的语句中设置 DATE 值,请参阅 the API of PreparedStatement。这会将值转换为数据库中的 DATE 类型。

    PreparedStatement prep = con.prepareStatement("some query with a DATE field");
    Date d = new Date(System.currentTimeMillis());
    // just an example (its the java.sql.Date class, not java.util.Date)
    prep.setDate(index, d);
    // ...
    

    要使用 DATE 字段的值返回此 java.sql.Date 对象,请使用 ResultSet classgetDate() 方法。

    ResultSet res = con.executeQuery("some query with a DATE field");
    Date d = res.getDate(index);
    

    您可以像使用java.util.Date 对象一样使用d 对象(如在Calendar 对象中使用),因为它是从它扩展而来的。

    【讨论】:

    • 非常感谢!这真的帮助了我。 :)
    【解决方案2】:

    你要做的是:

    String d = c.get(Calendar.YEAR) + "-" + c.get(Calendar.MONTH) + "-" + c.get(Calendar.DATE)
    

    如果我没记错的话,您还必须在月份中添加 +1,因为它返回偏移量(从 0 开始计数),而不仅仅是月份值(这对我来说很愚蠢,但我没有进行设计)。

    另外,您可能想查看SimpleDateFormat 及其以良好方式格式化日期的功能。

    【讨论】:

      猜你喜欢
      • 2014-03-27
      • 1970-01-01
      • 2012-11-19
      • 1970-01-01
      • 2014-12-07
      • 1970-01-01
      • 2019-01-07
      • 1970-01-01
      • 2014-05-06
      相关资源
      最近更新 更多