2017-09-17 22 views
1

MySQL 데이터베이스에 ISO8601 날짜/시간 형식을 삽입하는 데 문제가 있습니다.MySQL 삽입 ISO8601 Datetime 형식

데이터베이스 테이블 DATETIME 열에 ISO 형식 (즉, yyyymmddThhmmss + | -hhmm)을 삽입하고 싶습니다.

내가 가진 문제를 가지고 삽입하려고

:

작업이 실패 : 데이터베이스에 SQL 스크립트를 적용하는 동안 오류가 발생했습니다. 실행 중 : 업데이트 db. orders SET date = '20080915T155300 + 0500'WHERE id = '1';

오류 1292 : 1292 : 올바르지 않은 datetime 값 : '20080915T155300 + 0500'은 행의 'date'는 1 행 SQL 문 : UPDATE db. orders SET date = '+ 0500 20080915T155300'WHERE id = '1'

내가 MySQL의에이 형식으로 날짜 시간을 절약 할 수있는 방법이 있나요

?

+0

"이 포맷으로 datetimes를 MySQL에 저장할 수있는 방법이 있습니까?" 네이티브 방식이 없습니다 .. datetime 열과 시간대 열을 가져야한다고 생각하십시오 ... –

답변

0

MySQL은 표준 시간대를 지원합니다. 아마도 이것은 당신이 원하는 것을 수행합니다 :

select convert_tz(str_to_date(left(val, 15), '%Y%m%dT%H%i%s'), '+00:00', insert(right(val, 5), 4, 0, ':')) 
from (select '20080915T155300+0500' as val) x 
+0

을 선택하면 CONVERT_TZ를 사용하여 시간대를 사용하여 시간대를 계산할 수 있습니다. 삽입 된 datetime을 검색해야합니다. 시간대도. 당신은 + HH : mm (timezone)과 '2008-09-15 20:53:00'을 기반으로 시간을 변환하기 만했기 때문에 삽입 된 값을 (시간대로) 되돌릴 수 있고 그것을 검색 할 수 있다고 생각하십니까? – ldragicevic

+0

@ldragicevic. . . 두 개의 인수를 바꿔서 반대의 동작을 얻을 수 있습니다. –