2010-10-13 22 views
47

Me preguntaba si alguien podría ayudar con algo de Postgres. Tengo una tabla que tiene una columna llamada mydate que es un tipo de fecha postgres. Quiero hacer algo como: PostgresPostgreSQL, verificando la fecha relativa al "hoy"

SELECT * FROM MyTable WHERE mydate > [Today-1year] 

nunca he usado antes y estoy seguro de que sólo necesito saber el nombre de algún funciones- mucho gusto voy a buscar la referencia a mí mismo. ¿Alguien puede señalarme en la dirección correcta?

Gracias!

Respuesta

90
select * from mytable where mydate > now() - interval '1 year'; 
+1

esta debería ser la correcta. –

+0

¡Esto es perfecto! Gracias – JustGage

44

creo que esto lo hará:

SELECT * FROM MyTable WHERE mydate > now()::date - 365; 
+6

Tenga en cuenta que a diferencia de intervalo ' '1 year'', esto no va a respetar los años bisiestos. Eso puede no ser una preocupación de los suyos, pero si lo es, use mi respuesta. –

+3

ahora() :: date == CURRENT_DATE –

5

Esto debería dar la fecha actual menos 1 año:

select now() - interval '1 year'; 
1

Usted podría también comprobar el uso de la función age()

select * from mytable where age(mydate, now()) > '1 year';

age() devolverá un intervalo.

Por ejemplo age('2015-09-22', now()) volverá -1 years -7 days -10:56:18.274131

Ver postgresql documentation

Cuestiones relacionadas