Hola Ruben buenos dias

para esos casos puedes usar interval

select current_date, current_date - interval '10 day' as hace_10_dias;

select current_date, current_date - interval '15 day' as hace_15_dias;

http://www.postgresql.org/docs/9.3/static/functions-datetime.html


saludos


El 13 de junio de 2014, 7:10, Ruben Fitó <[email protected]> escribió:

> Hola,
>
> me gustaría saber si existe alguna función en postgres que me permita
> buscar por diferentes "períodos" de mes, sin necesidad de hacer cálculos de
> periodos.
>
> Me explico, tenemos clientes que facturan cada mes, cada semana o cada 10
> días(por mes), o sea que mensualmente:
>
> Cliente 1(por mes) se facturaran la compras realizadas des de el 1 hasta
> final de mes.
> Cliente 2(por quincenas) se le facturaran las compras del 1 al 15 y del 15
> hasta final de mes.
> Cliente 3(cada 10 días) se le facturaran las compras del 1 al 10, del 11
> al 20 y del 21 a final de mes.
>
> Del mismo modo hay necesidad de hacer los cálculos de consumo por período
> en tiempo de ejecución, o sea, cuánto ha consumido hasta "ahora", en su
> periodo de facturación actual(mensual, quincenal o cada 10 días).
>
> Actualmente ahora tenemos en una función de bbdd los cálculos necesarios
> para determinar las fechas del periodo de facturación actual, pero hay
> necesidad de aplicar otro tipo de periodos(*semanalmente*, por ejemplo)
> en otros ámbitos y nos gustaría saber si existe alguna función en postgres
> que me permita distribuir los meses por diferentes periodos.
>
> Un ejemplo de lo que digo seria:
>
>  SELECT sum(importe) FROM ventas WHERE cliente=12345 AND fecha_venta
> BETWEEN *inicio_periodo('X dias')*  AND now();
>
>
> *incio_periodo* seria la función postgres donde le paso los días de
> duración del periodo, o también podría pasar una fracción del mes. No sé
> algo así.
>
> Una manera que he encontrado para hacerlo seria buscar las ventas del mes
> actual o de la semana actual.
>
>  SELECT sum(importe) FROM ventas WHERE cliente=12345 fecha_venta BETWEEN
> (SELECT date_trunc('*MONTH*',now())::DATE) AND now(); --> para el mes
> actual.
>  SELECT sum(importe) FROM ventas WHERE cliente=12345 fecha_venta BETWEEN
> (SELECT date_trunc('*WEEK*',now())::DATE)  AND now(); --> para la semana
> actual.
>  ?? --> Para la quincena actual
>   ?? -->  Para "decena" actual
>
> El problema está en que no puedo filtrar 'cada 10 dias' o 'cada quinzena'
> en esta consulta.
>
> Como lo veis, hay algo que pueda ayudarme??
>
>
> Muchas gracias de antemano.
>
> Saludos
>
>
> --
> *Ruben Fitó *
> Software Engineer
> [image: Ubiquat Technologies, SL] [email protected]
> <[email protected]>
>  www.ubiquat.com
> Tota la informació continguda en aquest document i arxius adjunts és
> CONFIDENCIAL protegida per llei de secret comercial. Si l'ha rebut per
> error, si us plau elimini'l i posi's en contacte amb l'emissor.
>
> All information contained in this document and any attachments are
> CONFIDENTIAL and protected under trade secret laws. If you receive this
> message by mistake, please delete it and notify it immediately to the
> sender.
>



-- 
José Mercedes Venegas Acevedo
cel: Mov. 949808846

mails: [email protected]
          [email protected]

PHP Spanish Docs translator member.
http://www.php.net/manual/es/index.php

Responder a