2016-10-24 3 views
0

안녕 모두 삽입 쿼리에 문제가 있습니다.MySQL의 java에서 datetime 문자열 삽입

SimpleDateFormat sdfDate = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); 
Date now = new Date(); 
String strDate = sdfDate.format(now); 

p.s :

나는 자바에서 날짜를 얻을 나는 strDate에 SYSOUT을 시도해야하고 그것은 올바른 것입니다.

는 그와 같은 곳에이 같은 쿼리해야합니다 MySQL의 날짜에 입력하는 질문을 읽어 : (VALUES (에서) 트랙으로

INSERT (STR_TO_DATE를, '% Y- % M- % d % r '))

여기서'? ' 날짜를 포함하는 문자열이지만 작동하지 않습니다.

아무도 도와 줄 수 있습니까?

업데이트 : MySQL 서버 5.7

+1

사용중인 mysql 버전에 대한 정보를 제공해야합니다. mysql> SELECT STR_TO_DATE ('2009 년 5 월 18 일', '% M %)'명령 줄 클라이언트에서 mysql 서버에 연결할 수있는 빠르고 쉬운 테스트를 허용하려면 프롬프트에서 다음과 같은 테스트를 입력하십시오. d, % Y '); " – Matthias

+0

네, 작동하지만 ... 어떻게 내 문제에 사용할 수 있습니까?! –

+0

내 가정은 cli에서 작업 할 때 Java로 전송할 수 있어야한다는 것입니다 (도움이되기를 바랍니다). 또는 명령 줄에서 java의 usecase가 작동하지 않는 이유에 대한 힌트를 얻을 수 있습니다. – Matthias

답변

1

을 할 수 있습니다.

DateTime 필드의 "in"이름은 허용되지 않습니다.

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 'in, session) VALUES (1, NOW(), "abc")' at line 1. 
에서

'세션) 나는 "indate"쿼리에 이름을 바꾸려고가

:

INSERT INTO tracks (fk_utenza, indate, session) VALUES (1, NOW(), "abc"); 

작품을 잘!

1

현재 시간을 사용하고 있습니다. 따라서 NOW()로 간단히 처리 할 수 ​​있습니다.

INSERT INTO tracks (`in`) VALUES (NOW()) 

또는

당신은 내가 문제를 발견했다 이런 식으로

java.sql.Timestamp now = new java.sql.Timestamp(new java.util.Date().getTime()); 
PrepStmt.setTimestamp(1, now); 
+0

힌트 NOW()를 사용하는 Thx는 훨씬 간단합니다! –