在Java中,如何在不丢失时间部分的情况下将日期作为SQL参数传递?

在Java中,如何在不丢失时间部分的情况下将日期作为SQL参数传递?,java,sql,Java,Sql,例如,我有以下字符串:06/10/2013 18:29:09。我想转换此字符串并将其放入SQL数据库(作为日期) 如何将其转换为sql日期,以便将其插入数据库?我希望时间、分钟和秒也保持不变 我尝试了以下方法: SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss"); Date javaDate = sdf.parse("06/10/2013 18:29:09"); java.sql.Date date = new j

例如,我有以下字符串:06/10/2013 18:29:09。我想转换此字符串并将其放入SQL数据库(作为日期)

如何将其转换为sql日期,以便将其插入数据库?我希望时间、分钟和秒也保持不变

我尝试了以下方法:

SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss");
Date javaDate = sdf.parse("06/10/2013 18:29:09");
java.sql.Date date = new java.sql.Date(javaDate.getTime());

如果您正在使用字符串类型进行日期输入,然后希望将其保存在MySQL之类的数据库中,那么应该使用适当的日期格式。有一个名为“SimpleDataFormat”的类,您可以将其用于此目的。您可以在下面的链接中找到一个示例,以及它的工作原理的简要说明。希望能有帮助

示例:


致意。

您将使用SimpleDataFormat对象将字符串解析为java.util.date,然后使用getTime()方法实例化java.sql.date

    String input = "06/10/2013 18:29:09";
    SimpleDateFormat sdf = new SimpleDateFormat("MM/dd/yyyy hh:mm:ss");
    java.util.Date dt = sdf.parse(input);
    java.sql.Date dtSql = new java.sql.Date(dt.getTime());
问题在于:

java.sql.Date date = new java.sql.Date(javaDate.getTime());
存储时间戳的日期部分。如果您希望/需要同时处理日期和时间,请改用:

更多信息:


    • 这里有一个简单的演示。在这样的数据库表中

       //the SQL statement for creating the database table
       create table user(id, integer primary key, username varchar(100), date_created varchar(100));
      
       //the java code to insert into the table created above.
       try{
       String date = new SimpleDateFormat("dd/MM/YYYY HH:mm:ss").format(new Date());
       String sql = "insert into user(username, date_created) values('olupotd', '"+date+"')";
       int done = statement.executeUpdate(sql);
       if(done > 0)
          //inserted
       else
         //not inserted.
       }catch(java.sql.SQLException e){}
      
      你可以像这样插入它

       //the SQL statement for creating the database table
       create table user(id, integer primary key, username varchar(100), date_created varchar(100));
      
       //the java code to insert into the table created above.
       try{
       String date = new SimpleDateFormat("dd/MM/YYYY HH:mm:ss").format(new Date());
       String sql = "insert into user(username, date_created) values('olupotd', '"+date+"')";
       int done = statement.executeUpdate(sql);
       if(done > 0)
          //inserted
       else
         //not inserted.
       }catch(java.sql.SQLException e){}
      

      希望这对您有所帮助

      因为java.sql.Date或java.sql.Time不支持您描述的格式。我不确定我完全理解您的意思,但您是否希望将java.util.Date插入到sql varchar中,仅此格式?为什么要向下投票?在问这个问题之前,我做了很多研究。“很多研究”?你没试过吗?与其链接到教程,不如提供一个示例。使用
      SimpleDataFormat
      不是火箭科学。检查OP的代码。他正是这么做的,但失败了。是的-同意其他评论。他需要使用时间戳。第一个正确答案!