繁体   English   中英

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

[英]How to insert a value into a type date column of database?

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

我的字符串如下

Java的

 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(????)

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

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

在MySql中使用STR_TO_DATE函数

编辑

例如

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

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

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

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

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

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

在这里,您的String会转换为Date对象,但是如果您需要将此特定日期设置为另一个date对象,则无法通过yourDateObj.setDate(date)这样yourDateObj.setDate(date)因为Date类中没有任何此类直接方法,以日期为参数。

要设置特定日期,您可以使用“日历”

Calendar yourDate = new GregorianCalendar();
yourDate.setTime(date);

否则,您也可以使用Date(int year, int month, int date)但是现在不建议使用。

或者,如果您希望将String插入mysql Date列,则#function_str-to-date ,我同意Ed Heal的回答

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM