如何将值插入数据库的类型日期列?

时间:2013-03-04 05:50:56

标签: java mysql date

如何将作为日期的变量的值保存到数据库中。

我的字符串如下

爪哇

 SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
    try {
        SimpleDateFormat parseFormatter = new SimpleDateFormat("yyyy-MM-dd");
        //SimpleDateFormat dt = new SimpleDateFormat("yyyyy-mm-dd hh:mm:ss+hh:mm"); 
        Date date = parseFormatter.parse(mydate);

        String formattedDate = formatter.format(date);
        System.out.println("Date"+formattedDate);
      return formattedDate;  <<need to save its value to database lets say its value is 2013-03-19

我需要将其保存到表格中,其类型为日期。

数据库

Name Type
Date date

我想我需要将字符串转换为日期但是如何?

ps.setDate(????)

4 个答案:

答案 0 :(得分:1)

如果mydate是yyyy-MM-dd格式的字符串,那么您可以执行以下操作

    PreparedStatement ps = conn.prepareStatement("insert into t1 (date) values (?)");
    ps.setDate(1, java.sql.Date.valueOf(mydate));
    ps.executeUpdate();

答案 1 :(得分:0)

使用MySql中的STR_TO_DATE功能

修改

e.g。

INSERT INTO table (dateCol1, col2 ..)
VALUES (STR_TO_DATE('May 1, 2013','%M %d,%Y'), col2value, ...)

答案 2 :(得分:0)

MySQL了解日期。假设您使用的是PreparedStatement,您可以使用标准JDBC stmt.setDate(n,date),其中n是参数索引,date是日期类型的Java变量。

无需进行任何字符串转换。

答案 3 :(得分:0)

  

我想我需要将字符串转换为日期但是如何?

如果您想将String转换为Date,假设您的String2013-03-19

String yourString = "2013-03-19";
Date date = new SimpleDateFormat("yyyy-MM-dd").parse(yourString);

此处您的String已转换为Date对象,但如果您需要将此特定日期设置为另一个日期对象,那么这样就不可能yourDateObj.setDate(date)因为有Calendar yourDate = new GregorianCalendar(); yourDate.setTime(date); 在Date类中没有任何这样的直接方法,它将日期作为参数。

设置您可以使用日历的特定日期 像

Date(int year, int month, int date)

另外,您可以使用String这样做,但现在已弃用。

或者如果您希望将Date插入mysql的{​​{1}}列,然后#function_str-to-date,我同意 Ed Heal 回答