2017-08-03 4 views
1

記事に関する情報があるテーブルがあります。私はtimestamp without time zonepublished_at列を持っていて、各記事がどれくらい前に出版されたかを、日数で計算したいと考えています。Postgres:日付から日数を取得する

1週間前に公開された場合は、7に戻る必要があります。

どうすればいいですか?

私はPostgresがNOW()を持っていることを知っていますが、私はちょうど引き算してDAY()を取ることができますか?

ありがとうございます!

答えて

2

、結果は2つの間の日数となります日付。そのうちの一つがタイムスタンプである場合は、単に日付にキャスト:

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; 
2

あなたは、例えばdate_trunc使用することができます:あなたは別の1つの日付を引くことができ

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) 
関連する問題