반응형
파일에서 테이블로 일부 날짜를로드했으며 이제 날짜가있는 문자열을 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
반응형
'MySql' 카테고리의 다른 글
MySQL 한 테이블에서 다른 테이블로 한 열 복사 (0) | 2020.12.16 |
---|---|
MySQL 테이블 또는 열에 대한 모든 외래 키를 보려면 어떻게합니까? (0) | 2020.12.16 |
MySQL : 큰 VARCHAR 대 TEXT? (0) | 2020.12.16 |
MySQL 쿼리-오늘부터 지난 30 일 사이의 레코드 (0) | 2020.12.16 |
MySQL SELECT WHERE 기본 키 = XYZ를 사용하는 MySQL (0) | 2020.12.16 |
댓글