Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Postgresql Postgres:获取自日期起的天数_Postgresql - Fatal编程技术网

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;