web-dev-qa-db-fra.com

PostgreSQL, vérifiant la date relative à "aujourd'hui"

Je me demandais si quelqu'un pouvait aider avec certains Postgres. J'ai une table qui a une colonne appelée mydate qui est un type de date postgres. Je veux faire quelque chose comme:

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

Je n'ai jamais utilisé Postgres auparavant et je suis sûr que je dois juste connaître le nom de certaines fonctions. Je me ferai un plaisir de rechercher la référence moi-même. Est-ce que quelqu'un peut-il me montrer la bonne direction?

Merci!

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

Si vous vous souciez seulement de la date et non de l'heure, remplacez current_date Par now()

133
Paul Tomblin

Je pense que ça va le faire:

SELECT * FROM MyTable WHERE mydate > now()::date - 365;
59
Alex Howansky

Cela devrait vous donner la date actuelle moins 1 an:

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

Vous pouvez aussi vérifier en utilisant la fonction age()

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

age() retournera un intervalle.

Par exemple, age( '2015-09-22', now() ) retournera -1 years -7 days -10:56:18.274131

Voir documentation postgresql

4
Doc