2013-05-20 3 views
0

MySQL 데이터베이스 테이블에 날짜없이 시간을 삽입하려면 어떻게합니까? 나는이 코드를 시도했지만 나는 다음과 같은 예외가 :MySQL의 MySQL 데이터베이스 테이블에 날짜를 삽입하는 방법은 무엇입니까?

com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'Mar 05 00:00:00 GMT-08:00 2014,1,1)' at line 1 

참고 : MySQL의 테이블에서이 열의 데이터 유형은 나는 단지 날짜 부분 으로 문제를했습니다 날짜 데이터 형식

String Date = "\\d\\d\\d\\d\\D[0-1][0-9]\\D[0-3][0-9]"; 
while (DateMatcher.find()) { 
    String date = DateMatcher.group().trim(); 

    DateFormat formatter = new SimpleDateFormat("yyyy-MM-dd"); 
    Date myDate = formatter.parse(date); 

    db.insert_date(myDate,2,1);   
} 

를 선택 삽입 날짜 조회 : 모든

// insert DATE 
public void insert_date(Date date_str, int sentence_id ,int document_id){ 
     // Statements allow to issue SQL queries to the database 

    try { 
     statement = connect.createStatement(); 

     System.out.println( "insert into Date(date_Str,Sen_id,doc_id) " + 
       " values(" + date_str + "," + sentence_id + "," + document_id + ")" 
       ); 


     statement.executeUpdate(

     "insert into test.Date(date,Sen_id,doc_id)" + 
     " values(" + date_str + "," + sentence_id + "," + document_id + ")" 
     ); 
    } 
    catch(Exception e){System.out.println(e);}; 
    // Result set get the result of the SQL query 

} 
+0

왜 MySQL 날짜 데이터 형식 (http://dev.mysql.com/doc/refman/5.0/en/date-and-time-types.html)을 사용하지 않고 열을 기본값으로 구성합니까? –

+0

잘못 읽은 곳에서 볼 수 있습니다. 질문을하기 전에 "프로그래머"가 오류 메시지를 읽지 않는 이유가 궁금합니다. MySQL 쿼리를 작성한 방법에주의를 기울이십시오. 특히 따옴표. 특히 한 마디가 일치하지 않았습니다. –

+0

검색어 구문을 확인하십시오. 뭔가 잘못되었습니다. 쿼리 코드 게시 – Lakshmi

답변

8

먼저, 자바에서 데이터베이스에 java.util.Date을 유지하기 위해, 당신은 0으로 변환해야합니다. JDBC SQL Date에 대한 운 좋은 점은 Java Date의 서브 클래스라는 것입니다. 따라서

, 당신은이 작업을 수행해야합니다, java.util.Date에서 java.sql.Date 만들려면 다음
DateFormat formatter = new SimpleDateFormat("yyyy-MM-dd"); 
Date myDate = formatter.parse(date); 
java.sql.Date sqlDate = new java.sql.Date(myDate.getTime()); 

db.insert_date(sqlDate); 

db.insert_datejava.sql.Date 허용하는지 확인합니다.

여기서 PreparedStatement.setDate() 함수를 호출해야합니다.

관련 질문 java.util.Date vs java.sql.Date을 참조하십시오.

+0

어떻게이 유형을 변환 할 수 있습니까? 날짜 (Wed Mar 05 00:00:00 GMT-08 : 00 2014)는 날짜를 읽는 동안 원인을 유형으로 변환합니다.이 택시를 피하는 방법 – Freeman

+0

@ 프리먼, 방금 말한 것을 이해하지 못했습니다. –

+0

날짜 입력 (date_Str, Sen_id, doc_id) 값 (Wed Mar 05 00:00:00 GMT-08 : 00 20,1,1) 날짜를 삽입하는 동안 위의 형식으로 변환됩니다 – Freeman

관련 문제