我有一個關於文章的信息表。我有一個published_at
列,這是一個timestamp without time zone
,並且想要計算每篇文章在幾天前發佈的時間。Postgres:獲取日期以來的天數
所以如果它是一週前發佈的,我應該找回7
。
任何想法如何去?
我知道Postgres有NOW()
但我可以減去然後取DAY()
?
謝謝!
我有一個關於文章的信息表。我有一個published_at
列,這是一個timestamp without time zone
,並且想要計算每篇文章在幾天前發佈的時間。Postgres:獲取日期以來的天數
所以如果它是一週前發佈的,我應該找回7
。
任何想法如何去?
我知道Postgres有NOW()
但我可以減去然後取DAY()
?
謝謝!
您可以從另一個減去一個日期,結果將是天數,兩者之間日期。如果其中一個是時間戳記,只需將其轉換爲一個日期:
select current_date - published_at::date
from your_table;
如果你想獲得那些年輕的那麼7天,你可以使用:
select current_date - published_at::date as age_in_days
from your_table
where published_at >= current_date - 7;
可以使用date_trunc,如:
t=# select date_trunc('day',now() - '2016-01-01'::date);
date_trunc
------------
580 days
(1 row)
或數字結果,extract
t=# select extract('day' from date_trunc('day',now() - '2016-01-01'::date));
date_part
-----------
580
(1 row)