PostgreSQL,检查与“ today”相关的日期

不知道有没有人可以帮忙照看一下波斯特雷。我有一个表,其中有一个列称为 mydate,这是一个 postgres 日期类型。我想这样做:

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

我以前从来没有使用过 Postgres,我肯定我只是需要知道一些函数的名称-我会很高兴自己查找引用。有人能告诉我正确的方向吗?

谢谢!

175382 次浏览

我觉得这个可以:

SELECT * FROM MyTable WHERE mydate > now()::date - 365;
select * from mytable where mydate > now() - interval '1 year';

如果你只关心日期而不是时间,用 current_date代替 now()

select * from mytable where mydate > current_date - interval '1 year';

这应该给你当前的日期减去1年:

select now() - interval '1 year';

您还可以使用 age()函数进行检查

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

age()将返回一个间隔。

例如,age( '2015-09-22', now() )将返回 -1 years -7 days -10:56:18.274131

参见 Postgreql 文档