将日期字段插入DB

时间:2010-08-30 08:46:05

标签: java jsp

我的jsp中有一个名为“req_date”的文本框字段。用户正在以“DD-MON-YY”格式从javascript日历中选择日期。 “29-aug-2010”。所以,现在我在尝试将其插入数据库时​​陷入困境。

我尝试了“String queryString =”INSERT INTO Charity(req_date)VALUES(?)“,但它没有插入。我该如何解决这个问题。

req_date是数据库中的日期类型。

你能帮忙吗

3 个答案:

答案 0 :(得分:3)

日期格式取决于您使用的数据库。 有关Oracle的参考Date formats

所以您的查询应如下所示:

String queryString = "INSERT INTO Charity (req_date) VALUES (to_date('29-aug-2010', 'dd-mon-yyyy'))"

这只是回答你的问题。但我会更喜欢使用PreparedStatement,如其他答案所示。

使用PreparedStatement的代码应如下所示:(注意:我没有测试过这段代码)

    String formatIn = "dd-MMM-yyyy";
    SimpleDateFormat sdfi = new SimpleDateFormat(formatIn);
    java.util.Date inDate = sdfi.parse("29-Aug-2010");

    java.sql.Date sqlDate = new java.sql.Date(inDate.getTime());

    PreparedStatement prest = con
            .prepareStatement("INSERT INTO Charity (req_date) VALUES (?)");
    prest.setDate(1, sqlDate);
    int row = prest.executeUpdate();

答案 1 :(得分:3)

使用PreparedStatement及其setDate(..)。或者使用时间戳(long)。

答案 2 :(得分:0)

这取决于您的数据库,PostgreSQL确实识别这种格式:

SELECT CAST('29-aug-2010' AS date);

结果:

'2010-08-29'

在大多数情况下,您最好使用ISO格式的yyyy-mm-dd。