본문 바로가기
MySql

MySQL Mysql STR_TO_DATE 잘못된 날짜 시간 값

by 베이스 공부 2020. 12. 16.
반응형

파일에서 테이블로 일부 날짜를로드했으며 이제 날짜가있는 문자열을 datetime 형식으로 변환하고 싶습니다. 문자열 i 'datestring'열은 '12 -16-2010 01:48:28 '과 같으며이 쿼리를 실행하면 다음과 같습니다.

select STR_TO_DATE('12-16-2010 01:48:28', '%c-%e-%Y %T')

적절한 datetime을 반환합니다. 2010-12-16 01:48:28

그러나 이것을 실행하려고 할 때 :

update database.`temptable` 
SET datetimefile = (SELECT STR_TO_DATE(datestring, '%c-%e-%Y %T'))

이러한 종류의 오류가 발생합니다.

Incorrect datetime value: ''12-16-2010 01:48:28'' for function str_to_date

어떤 아이디어?

 

해결 방법

 

오류 메시지를 자세히 살펴보십시오.

Incorrect datetime value: ''12-16-2010 01:48:28''
                          ^^  2 single quotes  ^^

이를 일반 오류 메시지와 비교하십시오.

mysql> SELECT STR_TO_DATE('foo', '%c-%e-%Y %T');
+-----------------------------------+
| STR_TO_DATE('foo', '%c-%e-%Y %T') |
+-----------------------------------+
| NULL                              |
+-----------------------------------+
1 row in set, 1 warning (0.00 sec)

mysql> show warnings;
+---------+------+----------------------------------------------------------+
| Level   | Code | Message                                                  |
+---------+------+----------------------------------------------------------+
| Warning | 1411 | Incorrect datetime value: 'foo' for function str_to_date |
+---------+------+----------------------------------------------------------+
1 row in set (0.00 sec)                      ^   ^ just 1 single quote 

일반적으로 오류 메시지에는 단일 따옴표 집합이 있습니다. 귀하의 항목에는 이중 집합이 있으므로 실제로 열 데이터에 저장된 작은 따옴표 집합이 있음을 나타냅니다.

이 경우 존재하는 위치를 제거하여이 문제를 해결할 수 있습니다.

SET datetimefile = (SELECT STR_TO_DATE(REPLACE(datestring,"'",''), '%c-%e-%Y %T')) 


 

참조 페이지 https://stackoverflow.com/questions/20219552

 

 

반응형

댓글