유효한 날짜 형식이 아닌 VARCHARs 문자열을 VARCHAR로 저장되는 다른 테이블에 삽입하려고합니다. 나는 문자열의 형식이 유효하지 않은 경우 NULL을 반환하도록되어있는이를 달성하기 위해 STR_TO_DATE를 사용하려고 해요 : Error Code: 1411. Incorrect datetime value: 'some random string that isnt a date' for function str_to_date
: 잘못된 날짜 형식 문자열에서 오류가 발생MySQL WHERE STR_TO_DATE IS NULL을 삽입 할 수 없습니다.
INSERT INTO DateErrors
SELECT `row_id`,`date_string`
FROM `source_table`
WHERE STR_TO_DATE(`date_string`,'%d-%m-%Y') IS NULL
합니다. 이 오류를 던지는 대신 DateErrors에 삽입 된 문자열 값을 원합니다.
그러나 SELECT 쿼리 만 실행하면 date_string
이 잘못된 행을 반환하며 오류는 발생하지 않습니다.
왜해야 하는가? null 값을 찾는 경우에는 형식을 지정할 필요가 없습니다. – PaulProgrammer
@PaulProgrammer 무효 날짜가'NULL'을 반환한다고 가정하고 있지만 실제로는 '00-00-0000'으로 표시 될 수 있습니다. – tadman
처음에는이 문제를 피하기 위해 날짜를 저장하는 데'DATE' 열과 * DREE 열만 사용하는 것이 좋습니다. 이상적인 형식은'YYYY-MM-DD' 또는 ISO-8601 형식입니다. 다른 모든 것들은 모호함을 야기합니다. – tadman