Postgres age function #postgresql
If you want to select records according to a specific interval, like Rails' ActiveSupport 1.year.ago
PostgreSQL has you covered.
The age
function returns an interval type and can be used in queries like so:
select * from sometbl where age(created_at) > '1 year';
By default the age
function will use the current system time to calculate the age. If you want to calculate the age relative to a different time you can simply pass in another argument:
psql> select age(timestamp '2016-08-28', timestamp '1957-06-13');
age
-------------------------
59 years 2 mons 15 days
(1 row)
You can also use the make_interval
function to create intervals using numeric parameters:
psql> select make_interval(1,2,3,4,5);
make_interval
--------------------------------
1 year 2 mons 25 days 05:00:00
(1 row)
In a query it can be used like so:
select * from sometbl where age(created_at) > make_interval(1);
to select rows with created_at
older than one year from now.
Read more about the age
function and other cool date/time manipulations see the official documentation.
h/t Jack Christensen
Tweet