2010-04-29 133 views
2

我使用一個jquery日期選擇器然後我讀它在我的servlet這樣的:插入在MySQL數據庫的日期

字符串dateimput =用request.getParameter(「日期選擇器」); // 1 然後解析它這樣:

System.out.println("datepicker:" +dateimput); 
    DateFormat df = new SimpleDateFormat("MM/dd/yyyy");    
    java.util.Date dt = null; 
    try 
    { 
     dt = df.parse(dateimput); 
     System.out.println("date imput parssé1 est:" +dt); 
     System.out.println("date imput parsée2 est:" +df.format(dt)); 

    } catch (ParseException e) 
    { 
     e.printStackTrace(); 
    } 

,並插入查詢這樣的:

String query = "Insert into dailytimesheet(trackingDate,activity,projectCode) values ("+df.format(dt)+", \""+activity+"\" ,\""+projet+"\")"; 

現在傳,直到成功,但如果我檢查插入記錄,我發現日期:01/01/0001 00:00:00

我曾試圖解決它,但對我來說仍然是一團糟。

+0

在發送/應用於mysql之前,「查詢」的外觀如何?向我們展示您要插入的內容 – basszero 2010-04-29 11:31:47

+0

datepicker:2010年4月30日 date輸入parssé1est:星期五Apr 30 00:00:00 CEST 2010 date imputparsée2est:04/30/2010 – kawtousse 2010-04-29 11:34:30

+1

除非您希望發生SQL注入,應該使用'PreparedStatement'將值放入SQL語句中,而不是使用字符串連接。 – coobird 2010-04-29 11:38:01

回答

2

你要通過格式的日期: 「YYYY-MM-DD」

+0

@kawtousse,但它是回答您的noob問題,至少值得upvoting – 2010-04-29 12:05:35

+0

是的,我完全同意紀堯姆,你應該使用PreparedStatements出於安全性和可讀性的原因! – Hinek 2010-04-30 08:28:11