Para los que la siguen

05/04/2004 - 19:01 por Ricardo Uribe | Informe spam
Haciendo un resumen, tengo mi tabla Documento, que es migrada de una de Fox,
tengo ahi un campo FechaDocumento el cual es del tipo char y sus datos se
muestran en esta forma 2004-10-12 por ejemplo.

Bueno queria convertir mi campo FechaDocumento al tipo datetime pero no me
deja porque se producen valores fuera del intervalo permitido, entonces
busque algunos campos que estaban mal los años por ejemplo 0200-12-10 bueno
todos esos fueron eliminados, pero igual no me dejaba convertirlo al tipo
datetime.

Fue entonces que hice una consulta con ISDATE(FechaDocumento)=0 para ver
cuales eran los que no cumplian el intervalo de fechas, pero esa consulta me
devuelve datos que a mi parecer son fechas que cumplen el intervalo para
serlo. Entonces hice una consulta contraria ISDATE(FechaDocumento)=1
entonces me di cuenta, de lo que me devolvian las dos consultas, la primera
me devuelve todos los datos que el ultimo valor no coincide con un numero de
mes por ejemplo fechas como estas 2004-10-20, 2004-05-16, 2004-03-19 como no
hay meses 20 o 16 o 19 y por el contrario para la otra consulta.

Bueno entonces me doy cuenta que cuando hago la consulta el sql toma esas
fechas como aaaa-dd-mm como puedo hacer para que las tome como aaaa-mm-dd
al momento de convertir a date time y no me salga que hay valores fuera del
intervalo.

Bueno no se si necesitan que les explique algo mas, cualquier duda o
comentario sera muy agradecido.

Gracias.
 

Leer las respuestas

#1 Isaías
05/04/2004 - 19:40 | Informe spam
Refierase a CASE o CONVERT

SELECT CONVERT(CHAR(10), MyColFecha, 112)
FROM MyTabla
WHERE ISDATE(MyColFecha) = 1

Preguntas similares