2010-10-13 105 views
47

想知道是否有人可以協助一些Postgres。我有一個表,它有一個名爲mydate的列,它是一個postgres日期類型。我想要做的事,如:前PostgreSQL,檢查相對於「今天」的日期

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

我從來沒有用過Postgres的,我敢肯定,我只需要知道一些職能 - 我會很樂意查找參考自己的名字。任何人都可以將我指向正確的方向嗎?

謝謝!

回答

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

這應該是正確的。 – 2015-05-26 23:04:26

+0

這是完美的!謝謝 – JustGage 2017-05-04 21:21:02

44

我想這會做到這一點:

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

注意,與'區間「1個year'',這會不會尊重閏年。這可能不是你的問題,但如果是這樣,請使用我的答案。 – 2010-10-13 23:12:57

+3

now():: date == CURRENT_DATE – 2010-10-13 23:52:10

5

這應該給你的當前日期減1年:

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

你也可以查看使用age()功能

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

age()將返回一個時間間隔。

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

postgresql documentation