SQL Server - convert cadena a datetime

   
Vista:

convert cadena a datetime

Publicado por maria_85v (2 intervenciones) el 12/02/2009 19:32:27
Hola muy buenas, estoy trabajando con una base de datos sql server 2005.

En una tabla tengo un campo fecha que es de tipo varchar(10). y al hacer una consulta me gustaria que me lo ordenara por el campo fecha de forma descendente. la consulta que hice fue la siguiente

SELECT * FROM tabla ORDER BY convert(char,fecha,101) DESC

Pero no me lo ordena bien lo sigue ordenando como si fuera de tipo string.

Si alguien me podria ayudar se lo agradeceria un monton

Saludos y gracias de antemano
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:convert cadena a datetime

Publicado por Mau (67 intervenciones) el 13/02/2009 03:09:02
Que tal María, en realidad estás haciendo la conversión de TEXTO a TEXTO?

Además, si lo que estás guardando son fechas, por que tienes el campo como VARCHAR? Pero, independientemente de ese asunto que no sé, la conversión está mal.

Por que no pruebas mejor a hacer un CAST.

SELECT CAST('2009-02-12' AS DATETIME)

Ese no va a fallar. El problema podría ser tu máscara de fecha, pero como no nos pasaste un ejemplo, deduzco que debe ser válida.

Haz la prueba y si no funciona, me dices por favor.

Saludos!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:convert cadena a datetime

Publicado por maria_85v (2 intervenciones) el 13/02/2009 09:40:50
hola!!: muchisimas gracias por tu contestación, la verdad es que al acabar de escribir el post solucioné el problema

puse esto ORDER BY cast(convert(char,fecha,101)as datetime) desc y me funciono

De todas formas muchas gracias por tu contestacion

Saludos!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:convert cadena a datetime

Publicado por Isaias (3308 intervenciones) el 14/02/2009 03:42:17
Maria

Lo que estas haciendo no tiene logica por ninguna parte, haces DOS CONVERSIONES en un campo de tipo fecha, primero para hacerlo con formato 101 y depues lo regresas a DATETIME, ¿Que caso tiene?

Ademas, si tienes 1000 registros en tu tabla, no tendras problemas, pero si hablamos de unos 10,000 registros, esta consulta que estas ejecutando, NO HACE USO DE LOS INDICES, al utiliza el CONVERT.

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar