Я знаю, что этот вопрос очень похож на поставленный вопрос here. Но я не могу понять, почему я получаю эту ошибку. Этот синтаксис запроса:Ошибка MySQL: неверное значение даты и времени: '01/27/1989 'для функции str_to_date
update schema.table set date_field = str_to_date(date_field, '%m/%d/%Y') where str_to_date(date_field, '%Y-%m-%d') is null;
где положение там, чтобы убедиться, что он не изменяет даты, которые уже отформатированы правильно. Он бросает эту ошибку:
Error Code: 1411. Incorrect datetime value: '01/27/1989' for function str_to_date
можно выполнить следующий запрос без каких-либо проблем или ошибок, это то, как я проверить, прежде чем я сделать изменения:
select row_id, date_field, str_to_date(date_field, '%m/%d/%Y'), str_to_date(date_field, '%Y-%m-%d') from schema.table;
Эта ошибка является странным, потому что при этом последний оператор выбора, если есть неправильный или неожиданный формат str_to_date
просто вернет null. Я также использовал тот же синтаксис (без предложения where) для изменения временных форматов, и проблем не было. Если формат был неожиданным или неправильным, он просто обновил бы это поле с помощью значения null
. Я не знаю, что случилось с этой ошибкой.
Да, это проблема, позвольте мне попробовать. –
Этот запрос должен сделать трюк, а затем – nnichols
Очень приятно, спасибо! Я только что изменил информацию REGEX для учета четырехзначных лет и двухзначных лет -> ''^[0-9] {1,2}/[0- 9] {1,2}/[0-9] {2,4} $ ' ' –