From: | Henry <hensa22(at)yahoo(dot)es> |
---|---|
To: | Henry <hensa22(at)yahoo(dot)es>, fabian olmos <fabianolmos806(at)gmail(dot)com>, pgsql-es-ayuda(at)postgresql(dot)org |
Subject: | Re: CALCULO DE HORAS AL DIA |
Date: | 2007-02-23 19:26:51 |
Message-ID: | 386542.1525.qm@web30808.mail.mud.yahoo.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
Henry <hensa22(at)yahoo(dot)es> escribió: puedes usar, para sacar sabados y domingos
select campo1,campo2 from tablaX where to_char(mifecha,'d')::int2 not in (6,1)
or
select campo1,campo2 from tablaX where EXTRACT(DOW FROM current_date) not in (6,7)
fabian olmos <fabianolmos806(at)gmail(dot)com> escribió: OK te entiendo y gracias pero otra duda yo tengo la tabla con los dia feriados pero como saco todos los dias entre las dos fechas para asi varificar si ese dia es sabado o domingo.
El día 23/02/07, Alvaro Herrera <alvherre(at)commandprompt(dot)com> escribió: fabian olmos escribió:
> hola que tala todos, soy nuevo en esto, disculpen la moletsia pero necesito
> ayuda con esto. yo necesito crear una funcion que me permita sacar de un
> rango de fecha el numero de dias que hay excluyendo a los dias feriados y
> los dias (sabado y domingo).
Primero que nada necesitas tener una tabla que liste todos los feriados.
Luego haces una consulta que traiga todos los dias entre las dos fechas,
excluyendo los dias sabados y domingos, y excluyendo aquellos dias que
esten en la tabla de feriados.
Hacer un bucle en torno a los dias y hacer "a+1" en cada ciclo es una
solucion muy torpe. Aprende SQL mejor -- es mas elegante y mas
eficiente.
--
Alvaro Herrera http://www.CommandPrompt.com/
PostgreSQL Replication, Consulting, Custom Development, 24x7 support
<si lo que sucede es que no tengo una tabla con las fechas.solo cuento con un rango ejemplo ('2007-2-16','2007-2-20')
deberias hacer un bucle
y usar to_char o extract,
algo como
fecha ='2007-02-20'::date ;
j='2007-02-20'::date - '2007-2-16'::date +1 ;
for i in 1..j loop
dia=to_char(fecha,'d')
if dia in (6,1) then
.
.
.
fecha=fecha+1;
end loop;
bueno, algo asi puede ser, dependiendo de la cantidad de dias que separe las fechas, puede decrecer la capacidad de respuesta o el rendimiento
pero que raro que no use una tabla,
porke motivos quieres haces esa operacion?
---------------------------------
LLama Gratis a cualquier PC del Mundo.
Llamadas a fijos y móviles desde 1 céntimo por minuto.
http://es.voice.yahoo.com
From | Date | Subject | |
---|---|---|---|
Next Message | jeferson alvarez | 2007-02-23 19:38:19 | Re: Conectar C# con Postgres |
Previous Message | Mario | 2007-02-23 19:22:00 | Re: Ayuda con rendimiento.. |