如何将日期时间嵌入SQL字符串

时间:2012-05-29 15:15:26

标签: java sql datetime

我需要使用Statement.executeUpdate()将数据插入数据库。 因此,每个参数都必须嵌入到SQL字符串中。 在Database中,两列的类型是datetime:Date1和Date2 在客户端,如果我使用以下声明:

String SQLString = "INSERT INTO Position (" +
    ......
    "Date1, " +
    ......
    "Date2) " +
    "VALUES(" +
    ......
    //"2012-05-29 16:28:58.555" + ", " + // runtime error, always say error at 16
    //"2012-05-29" + ", " + // no runtime error, but lost time and result date is also not correct
    //"10-06-02" + ", " + // no runtime error, but it adds 2 days beginning at 1900-01-01 00:00:00.000
    ......
    null
    ")";

有人能告诉我如何将Datetime正确嵌入到SQL String中吗?

2 个答案:

答案 0 :(得分:4)

您应该使用PreparedStatement并传递日期字段ad Date ...

String SQLString = "INSERT INTO Position (Date1) VALUES (?)";
PreparedStatement prest = con.prepareStatement(SQLString);
prest.setDate(1,new Date());
prest.executeUpdate()

答案 1 :(得分:2)

首先,您必须使用PreparedStatement。然后你可以做类似的事情:

statement.setDate(2, new Date());