Nonaktifkan NO_ZERO_DATE
Modus SQL:
set @old_sql_mode = @@sql_mode;
set sql_mode = '';
Jalankan pernyataan Anda:
UPDATE Estimates
SET CreatedDate = NULLIF(str_to_date(CreatedDate, '%c/%e/%y'), FROM_DAYS(0))
Kemudian aktifkan mode SQL asli:
set sql_mode = @old_sql_mode;
Menonaktifkan NO_ZERO_DATE
mode akan membuat STR_TO_DATE
kembalikan tanggal nol 0000-00-00
untuk string tanggal yang tidak valid, nilai yang sama dikembalikan oleh FROM_DAYS(0)
. Jadi NULLIF
akan mengonversi tanggal nol menjadi NULL
.
Jawaban ini sangat membantu.