2012-12-21 5 views
1

나는이 SQL 문자열을 사용하여 내 MySQL 데이터베이스에이 DateTime 데이터 '12/21/2012 1:13:58 PM'를 삽입하고 :MySQL 데이터베이스의 올바른 DateTime 형식은 무엇입니까?

String Query = "INSERT INTO `restaurantdb`.`stocksdb` 
        (`stock_ID`,`stock_dateUpdated`) 
        VALUES ('@stockID' '@dateUpdated'); 

을하고이 오류 메시지가 나타납니다

Incorrect datetime value: '12/21/2012 1:13:58 PM' for column 'stock_dateUpdated' at row 1 

그래서 dateTime에 대한 올바른 형식/값이 무엇을 MySQL 데이터베이스에 입력 하시겠습니까?

+2

변화 값을 볼 @ stockID ''@dateUpdated '); VALUES ('@stockID', '@dateUpdated'); 그리고 그것은 작동해야한다 – Satya

+0

는 "stock_dateUpdated"열 –

+2

에 대한 테이블 sturucture 또는 데이터 형식을 제공 할 수 있습니다'VALUES'에 쉼표가 없습니다. –

답변

6

Q : MySQL의 문 내의 문자 DATETIME에 대한 올바른 형식/값은 무엇입니까?

A : MySQL은 리터럴 DATETIME위한 표준 포맷은 다음 24 시간 클록 (같은 시간 요소와

'YYYY-MM-DD HH:MI:SS' 

예 00과 23 사이의 값으로 제공되는 시간 숫자).

MySQL은 다양한 형식의 문자열을 DATE 또는 DATETIME 데이터 유형으로 변환 할 수있는 내장 함수 STR_TO_DATE을 제공합니다.

그래서, 대안으로, 당신은 또한 다음과 같이 그 함수를 호출와 DATETIME의 값을 지정할 수 있습니다 : 그래서

STR_TO_DATE('12/21/2012 1:13:58 PM','%m/%d/%Y %h:%i:%s %p') 

을, 당신은 MySQL의이 INSERT에 당신을 위해 변환을 수행 할 수 문, 당신의 VALUES 목록은이처럼 보였다 경우 : (. 난 당신이 당신의 VALUES 목록에있는 두 개의 리터럴 사이에 누락 필요한 쉼표를 통지)

... VALUES ('@stockID', STR_TO_DATE('@dateUpdated','%m/%d/%Y %h:%i:%s %p'); 

,

MySQL은 DATETIME 부분 사이의 구분자에서 약간의 위도를 허용하므로 엄격하게 요구되지는 않습니다.

주석에서 언급 한 바와 같이

MySQL 5.5 Reference Manual.

2

내가 사용한 작품은 연중 무휴이며 24 시간입니다. PHP에서는 date('Y-m-d H:i:s')입니다. C#/NET에서 yyyy-MM-dd HH:mm:ss에 해당합니다. (시간 부분은 선택 사항이며, 그래서 대시가 있습니다.)

는, 워드 프로세서에 Date and Time Literals을 확정 :

날짜 및 시간 값이 같은 인용 문자열이나 숫자로, 여러 가지 형식으로 표현 될 수있다, 값의 정확한 유형 및 기타 요인에 따라 다릅니다. 예를 들어, MySQL이 날짜를 예상하는 컨텍스트에서 '2015-07-21', '20150721'및 20150721 중 하나를 날짜로 해석합니다.

1

, 당신은 값 구분 기호 , 누락되었습니다.또한 더 나은 최초로 삽입하기 전에 날짜 객체로 문자열을 변환 할 STR_TO_DATE을 사용 :

String Query = "INSERT INTO `restaurantdb`.`stocksdb` "+ 
       " (`stock_ID`,`stock_dateUpdated`) VALUES "+ 
       "('@stockID', STR_TO_DATE(@dateUpdated, '%m/%d/%Y %h:%i:%s %p'))"; 
0

MySQL의 DATETIME 형식 YYYY-MM-DD HH입니다 : MM : SS는 - '(이 page

관련 문제