2017-05-18 1 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을 사용하십시오.