Tengo una tabla de 300,000 filas; una de las columnas es varchar() pero realmente contiene una fecha xx/xx/xxxx o x/x/xxxx o similar. Sin embargo, la ejecución de la siguiente prueba produce un error:Encontrar fechas no válidas en SQL Server 2008
SELECT CAST(MyDate as Datetime) FROM MyTable
El problema es que no me dice en qué fila ...
que han ejecutado una serie de cambios “manuales” por ensayo y error y realizado actualizaciones simples para arreglarlas, pero tiene que haber algunos valores extraños que necesitan ser eliminados o reparados.
Por ejemplo me lleva a cabo una prueba simple que fija unos 40 filas:
UPDATE MyTable SET MyDate = REPLACE(MyDate, '/000','/200') FROM MyTable WHERE MyDate like ('%/000%’)
UPDATE MyTable SET MyDate = REPLACE(MyDate, '/190','/199') FROM MyTable WHERE MyDate like ('%/190%’)
Esto fija un buen número de filas extraños que tenían como fechas 01/01/0003 y tal. (Las fechas oscilan entre 1998 y 2010).
Sin embargo, me gustaría saber que filas están fallando en la selección anterior.
¿Cuál sería la mejor manera de imprimirlos para poder eliminarlos, editarlos o ver qué hacer? Gracias.
Gracias, eso lo hizo. –
Funciona bien en Access también - gracias. –