PDA

Ver la Versión Completa : Como hacer una consulta sql con condicion fecha < 1 mes atras??


ManuelPerez
07-02-2008, 04:06:30
Gracias por la ayuda:
lo que necesito hacer es los siguiente: generar un select trayendo todas las facturas desde un mes atras hasta la actualidad.

select * from factura
where fecha > "fecha actual - 1 mes"--> esto no se como hacerlo


gracias:)

keyboy
07-02-2008, 05:46:22
Pues dependerá de la base de datos que uses. En MySQL sería así:


select * from factura
where fecha > date_sub(curdate(), interval 1 month)


Otras bases tendrán funciones distintas pero similares.

Bye

Neftali [Germán.Estévez]
07-02-2008, 10:45:54
Para próximos mensajes, por favor coloca el SGBD que estás utilizando. Así podremos contestarte con mayor exactitus y el porst se podrá colocar en el foro correcto (en lugar de en Varios).


En SQL Server puedes usar DATADIFF


... where DATEDIFF(day, Fecha, GetDate())<=30
... where DATEDIFF(month, Fecha, GetDate())<=1



day es lo que restas a la fecha (day, month, hour,...)

ManuelPerez
07-02-2008, 16:10:34
Perdon por no ser claro la base es interbase .
gracias

gendelphi
07-02-2008, 18:24:50
Lo probe con Firebird 2, y sería asi:

SELECT *
FROM tabla
WHERE fecha < CURRENT_DATE - 30


Recuerdo que en Firebird 1 o Interbase 6 lo hacia asi:

SELECT *
FROM tabla
WHERE fecha < CAST('now' AS TIMESTAMP) - 30

Y también funciona asi en Firebird 2.

ManuelPerez
07-02-2008, 18:37:57
Gracias Funcionan Las Dos Formas :)

jachguate
07-02-2008, 19:55:19
A partir de la versión 2.1 de Firebird, está disponible dentro del motor también la función DateDiff y DateAdd, que sería la adecuada para este caso. En versiones anteriores, puede usarse desde un UDF.

Hay una buena cantidad de otras funciones que se han integrado al motor, mas información en la sección New Builtin Functions de Release Notes de Firebird 2.1 (http://www.firebirdsql.org/devel/doc/rlsnotes/html/rlsnotes210.html#rnfb210-appx-A)

Hasta luego.

;)