Если вы хотите восстановить неверные значения, используя UPDATE
, вы должны применить его ко всей таблице, используя условные выражения.Ответ Эллиота верен, но я не могу комментировать или поднять голос, поэтому я немного уточню и отвечу на этот вопрос:
UPDATE `my.table`
SET DateField = IF(SAFE.DATE(DateField) IS NULL AND DateField IS NOT NULL, TIMESTAMP('2019-01-01 00:00:00 UTC'), DateField)
WHERE true
WHERE true
- секретный соус, который не очевиден изОтвет Эллиота.Если вы попытаетесь сделать WHERE id = 1234
или что-то еще, оно продолжит выдавать ту же ошибку.SAFE.DATE
- это краткий способ проверки действительных дат, который вернет NULL
, если они недействительны, однако ваше поле может быть пустым, поэтому я добавил пустую проверку.