我的jsp中有一个名为“req_date”的文本框字段。用户正在以“DD-MON-YY”格式从javascript日历中选择日期。 “29-aug-2010”。所以,现在我在尝试将其插入数据库时陷入困境。
我尝试了“String queryString =”INSERT INTO Charity(req_date)VALUES(?)“,但它没有插入。我该如何解决这个问题。
req_date是数据库中的日期类型。
你能帮忙吗
答案 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。