Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

Ordenar fechas ya convertidas

Estas en el tema de Ordenar fechas ya convertidas en el foro de SQL Server en Foros del Web. Hola, buenos días. Mi duda es la siguiente. Tengo una base de datos en el que mi jefe me pidió que realizara una consulta con ...
  #1 (permalink)  
Antiguo 18/12/2007, 00:45
 
Fecha de Ingreso: noviembre-2007
Mensajes: 15
Antigüedad: 16 años, 6 meses
Puntos: 0
Ordenar fechas ya convertidas

Hola, buenos días. Mi duda es la siguiente.

Tengo una base de datos en el que mi jefe me pidió que realizara una consulta con fechas del tipo siguiente:

"1 de Diciembre del 2007".

Bueno, pues leyendo un poco, conseguí hacerlo gracias a los CONVERT que tiene SQL Server.

De este modo se tendría:

select distinct convert(varchar(11),d.insertDate,13) as insertDate from documents a, documentsl b, documentsfiles c, files d where a.idDocument = b.idDocument and b.idDocument = c.idDocument and enable = 1 and c.idFile = d.idFile order by insertDate desc

La consulta funciona perfectamente y hace lo que pido.

El problema es que las fechas tienen que estar ordenadas, por lo que ya existe un fallo en la consulta, pues la fecha, en lugar de estar ordenada por fechas, lo hace por orden alfabético . Esto es:

24 Abr 2002
14 Dic 2007
11 Dic 2007
09 Oct 2007
03 Dic 2007
01 Mar 2002

En lugar de:

14 Dic 2007
11 Dic 2007
03 Dic 2007
09 Oct 2007
24 Abr 2002
01 Mar 2002

La duda es ¿hay alguna manera de hacerlo que no sea muy traumática con ese formato? Porque estoy por pedirle a mi jefe de dejarlo en formato 01/12/2007, que ese sí funciona correctamente.

Muchas gracias y un saludo.
  #2 (permalink)  
Antiguo 18/12/2007, 06:57
Avatar de Sir Matrix  
Fecha de Ingreso: octubre-2000
Ubicación: Dentro de mi cabeza. ono?
Mensajes: 1.264
Antigüedad: 23 años, 7 meses
Puntos: 3
Re: Ordenar fechas ya convertidas

Prueba así:

select distinct convert(varchar(11),d.insertDate,13) as FechaInsertada from documents a, documentsl b, documentsfiles c, files d where a.idDocument = b.idDocument and b.idDocument = c.idDocument and enable = 1 and c.idFile = d.idFile order by insertDate desc

saludos
__________________
|||| ))>_<(( ||||
www.webmagic.cl <-- esta pagina está mala, no la busquen
  #3 (permalink)  
Antiguo 19/12/2007, 02:09
 
Fecha de Ingreso: noviembre-2007
Mensajes: 15
Antigüedad: 16 años, 6 meses
Puntos: 0
Re: Ordenar fechas ya convertidas

Cita:
Iniciado por Sir Matrix Ver Mensaje
Prueba así:

select distinct convert(varchar(11),d.insertDate,13) as FechaInsertada from documents a, documentsl b, documentsfiles c, files d where a.idDocument = b.idDocument and b.idDocument = c.idDocument and enable = 1 and c.idFile = d.idFile order by insertDate desc

saludos
Muchas gracias, pero así me dice que el nombre insertDate es ambiguo. Así que lo hice de esta forma:

select distinct d.insertDate, convert(varchar(11),d.insertDate,13) as FechaInsertada from documents a, documentsl b, documentsfiles c, files d where a.idDocument = b.idDocument and b.idDocument = c.idDocument and enable = 1 and c.idFile = d.idFile order by d.insertDate desc

Sé que hago un select de dos columnas, la del alias (FechaInsertada) y la real, ya que si no, el order by necesita que el nombre de las columnas esté en la selección.

Saludos y gracias.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 04:25.