无法将日期添加到sql数据库

时间:2016-12-27 19:25:54

标签: java mysql sql jsp

我要在数据库中添加日期。数据库字段的类型为DATE,我传入一个字符串,其中包含日期。这是sql:

INSERT INTO timetableslot (TO_DATE('?', 'MM/DD/YYYY'), time, classID, cost)
VALUES ('12/23/2016','12:00',3,12)

我收到以下错误:

  

您的SQL语法有错误;检查手册   对应于您的MariaDB服务器版本,以获得正确的语法   靠近'('?',' MM / DD / YYYY'),时间,classID,费用)VALUES   (' 12 /2016分之23',' 12:00',3,12)'在第1行

public boolean saveToDatabase() {

    boolean saved = false;
    Connection c = DBHelperClass.getConnection();
    String template = "INSERT INTO timetableslot (TO_DATE('?', 'MM/DD/YYYY'), time, classID, cost)"
            + "VALUES (?,?,?,?)";
    if (c != null) {
        try {
            PreparedStatement inserter = c.prepareStatement(template);
            inserter.setString(1, this.getDate());
            inserter.setString(2, this.getTime());
            inserter.setInt(3, this.getClassID());
            inserter.setInt(4, this.getCost());

            System.out.println(inserter);
            inserter.executeUpdate();
            saved = true;
        } catch (SQLException ex) {
            Logger.getLogger(User.class.getName()).log(Level.SEVERE, null, ex);
        }

    }

    return saved;
}

1 个答案:

答案 0 :(得分:2)

使用以下作为准备好的陈述:

String template = "INSERT INTO timetableslot (<COLUMN-NAME>, time, classID, cost) VALUES (STR_TO_DATE(?, '%m/%d/%Y'),?,?,?)";

TO_DATE是一个Oracle函数。 MySQL使用STR_TO_DATE