代码之家  ›  专栏  ›  技术社区  ›  Badr

在MySQL中添加java日期时出现问题?

  •  0
  • Badr  · 技术社区  · 16 年前

    这是密码

    String DateOfBirth[]=strDOB.split("/");
    Date dateOfBirth = new Date();
    dateOfBirth.setYear(Integer.parseInt(DateOfBirth[2].trim()));
    dateOfBirth.setMonth(Integer.parseInt(DateOfBirth[1].trim()));
    dateOfBirth.setDate(Integer.parseInt(DateOfBirth[0].trim()));
     java.text.SimpleDateFormat DateFormat = new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    strDOB = DateFormat.format(dateOfBirth);
     DBProcess.QueryExecuter("INSERT INTO patients(patient_id,first_name,last_name,middle_name,birth_dt) VALUES (\""+Double.parseDouble(strPatientID.trim())+"\",\""+strFirstname+"\",\""+strLastname+"\",\""+strMiddlename+"\",\""+strDOB +"\");");
    
    2 回复  |  直到 16 年前
        1
  •  1
  •   duffymo    16 年前

    哦,天哪。

    看看这是否更好:

    private static final String INSERT_SQL = "insert into patients(patient_id, first_name, last_name, middle_name, birth_dt) values(?, ?, ?, ?, ?)";
    
    DateFormat inputFormatter = new SimpleDateFormat("dd/MM/yy");
    Date dob = inputFormatter.parse(strDOB);
    PreparedStatement ps = connection.prepareStatement(INSERT_SQL);
    // bind your values here.
    int numRowsAffected = ps.executeUpdate();
    

    我不明白为什么你要写这样的代码来解析一个日期字符串,而DateFormat是天生的。我当然希望你的 birth_dt 列的类型为数据库中的日期。其他任何事情都是愚蠢的。

        2
  •  0
  •   Benoit Courtine    16 年前

    java.sql.Date theDate = new Date(longTime);
    PreparedStatement stmt = conn.prepareStatement("INSERT INTO table(id,date) VALUES (?,?)");
    stmt.setInt(1, 123);
    stmt.setDate(2, theDate);
    stmt.execute();
    
    推荐文章