Postgresql Postgres:获取自日期起的天数
我有一张关于文章的资料表。我在栏有一个Postgresql Postgres:获取自日期起的天数,postgresql,Postgresql,我有一张关于文章的资料表。我在栏有一个published\u,这是一个没有时区的时间戳,我想计算每篇文章发表的时间,以天为单位 因此,如果它是一周前出版的,我应该返回7 你知道怎么做吗 我知道Postgres现在有NOW(),但我可以先减去,然后取DAY() 谢谢 您可以使用date\u trunc,例如: t=# select date_trunc('day',now() - '2016-01-01'::date); date_trunc ------------ 580 days (1
published\u,这是一个没有时区的时间戳
,我想计算每篇文章发表的时间,以天为单位
因此,如果它是一周前出版的,我应该返回7
你知道怎么做吗
我知道Postgres现在有NOW()
,但我可以先减去,然后取DAY()
谢谢 您可以使用date\u trunc,例如:
t=# select date_trunc('day',now() - '2016-01-01'::date);
date_trunc
------------
580 days
(1 row)
或对于数字结果,提取
t=# select extract('day' from date_trunc('day',now() - '2016-01-01'::date));
date_part
-----------
580
(1 row)
你可以从一个日期减去另一个日期,结果将是两个日期之间的天数。如果其中一个是时间戳,只需将其转换为日期:
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;