PostgreSQL, checking date relative to "today"
SqlPostgresqlSql Problem Overview
Was wondering if someone could assist with some Postgres. I have a table which has a column called mydate
which is a postgres date type. I want to do something like:
SELECT * FROM MyTable WHERE mydate > [Today-1year]
I've never used Postgres before and I'm sure I just need to know the name of some functions- I'll gladly look up the reference myself. Can anyone point me in the right direction?
Thanks!
Sql Solutions
Solution 1 - Sql
select * from mytable where mydate > now() - interval '1 year';
If you only care about the date and not the time, substitute current_date
for now()
select * from mytable where mydate > current_date - interval '1 year';
Solution 2 - Sql
I think this will do it:
SELECT * FROM MyTable WHERE mydate > now()::date - 365;
Solution 3 - Sql
This should give you the current date minus 1 year:
select now() - interval '1 year';
Solution 4 - Sql
You could also check using the age()
function
select * from mytable where age( mydate, now() ) > '1 year';
age()
wil return an interval.
For example age( '2015-09-22', now() )
will return -1 years -7 days -10:56:18.274131