Re: CALCULO DE HORAS AL DIA

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

In response to

Responses

Browse pgsql-es-ayuda by date

  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..