2017-05-18 5 views
0

SqLiteStudioは、dateフィールドがTEXT型であることを示していますが、日付フィールドのデータベースにあるコードを実行した後に表示されます。1994 値が2017-05-18ではないのはなぜですか?日付を正しい形式で貼り付けるには?

stmt = c.createStatement(); 
DateFormat df = new SimpleDateFormat("yyyy-MM-dd"); 
String date = df.format(new Date());  
String sql = "UPDATE advert SET date = " + date + " WHERE advert_id=" + advertId + ";"; 
stmt.executeUpdate(sql); 

答えて

3

あなたは、日付文字列の周りの単一引用符が欠落しているので、数学的な操作として解釈される:2017から5 - = 18 1994年

引用日付文字列:

String sql = "UPDATE advert SET date = '" + date + "' WHERE advert_id=" + advertId + ";"; 
            ^  ^

かより良いですが、prepared statements and parameter bindingを使用してください。