Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   SQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=6)
-   -   Ordenar por dia de la semana (1. DOM, 2. LUN, 3.MAR...) (https://www.clubdelphi.com/foros/showthread.php?t=50687)

fcarrillopinto 25-11-2007 20:50:01

Ordenar por dia de la semana (1. DOM, 2. LUN, 3.MAR...)
 
Hola amigos, espero me puedan ayudar a resolver esta duda que tengo, tengo una consulta a una tabla de interbase, y quisiera que el resultado de la consulta me lo ordene de acuerdo al dia de la semana, primero las fechas del domingo, luego las del lunes...etc...

De antemano, gracias...

santi33a 27-11-2007 12:55:45

Si ordernas por fecha no te lo ordena por ese orden tambien, no entiendo lo que quieres decir.

fcarrillopinto 27-11-2007 17:15:14

Cita:

Empezado por santi33a (Mensaje 248642)
Si ordernas por fecha no te lo ordena por ese orden tambien, no entiendo lo que quieres decir.

No, no me ordena como deseo, ya que me lo ordenará en base a la fecha, primero el dia 1,2,3,4...31 del mes, luego los del siguiente mes, 1,2,3...etc...

Lo que yo necesito es que lo ordene primero las fechas que corresponden al dia DOMINGO, luego las fechas que corresponden al dia LUNES, luego las que corresponden al dia MARTES, ..., hasta las que corresponden al dia SABADO...

Lepe 27-11-2007 20:20:02

En Firebird sería más o menos así
Código SQL [-]
order by cast( extract( day from fecha) as integer)

En tu base de datos, igual tienes que usar Substract, para sacar parte de la fecha, convertirla a integer y rezar para que no se queje el SGBBDD :)

Saludos

hecospina 27-11-2007 22:25:39

hola intenta
select extract(weekday from fecha) as diasemana from tabla

lo unico que el dia lunes seria el 1

jhonny 27-11-2007 22:30:16

Bueno, para ser sincero no recuerdo si la siguiente función viene desde FireBird 2.0 o si es desde antes, pero acabo de ensayarla en FB2.0 y me funciono muy bien :).

Según comprendo lo que quieres, es lo sigue:

Código SQL [-]
order by extract(weekday from fecha)

Con dicha función el dia Domingo es el número 1 ;).

jhonny 27-11-2007 22:31:34

Cita:

Empezado por hecospina (Mensaje 248831)
hola intenta
select extract(weekday from fecha) as diasemana from tabla

lo unico que el dia lunes seria el 1

Caramba, casi que respondemos lo mismo, con excepción que el dia en cuestión no es Lunes, si no Domingo ;).

http://www.janus-software.com/fbmanu...=PSQL&topic=50

Lepe 28-11-2007 00:26:15

weekday Lepe, weekday .... y no la lies tanto con cast !!


:D

hecospina 28-11-2007 01:25:07

jhony
Trabajo con firebird 2 y al hacer la consulta del lunes me arroja el numero 1
depronto peleando con la guia de estilo

Podria preguntar aqui como puedo traer en una consulta SQL el numero de la semana del año ?

jhonny 28-11-2007 14:25:06

Cita:

Empezado por hecospina (Mensaje 248878)
jhony
Trabajo con firebird 2 y al hacer la consulta del lunes me arroja el numero 1
depronto peleando con la guia de estilo

Podria preguntar aqui como puedo traer en una consulta SQL el numero de la semana del año ?

Caramba¡¡¡, Bueno, yo la he probado en FireBird 2.1 Beta 2 y el 1 me arrojo el Domingo, ¿Sera que la cambiaron de la 2.0 a la 2.1?.

En cuanto a lo del número de la semana en el año, te cuento que según veo en el WhatsNew del FireBird 2.1 Beta 2 se hace con:

Código SQL [-]
EXTRACT(WEEK FROM DATE)

Y según veo fue Adriano dos Santos Fernandes quien agrego dicha funcionalidad :), la cuestion es que al parecer en la versión 2.0 no existe dicha funcionalidad aún.

fcarrillopinto 28-11-2007 18:32:16

gracias
 
Muchas gracias a todos por sus valiosos comentarios...

Saludos a todos...

:)


La franja horaria es GMT +2. Ahora son las 09:30:19.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi