如何从PostgreSQL中两个日期的差异中得到天数?

时间:2013-07-31 12:17:41

标签: postgresql postgresql-9.1 postgresql-9.2

select extract(day from age('2013-04-06','2013-04-04'));`

给了我无天!即:2

但是当我有一个不同的月份时失败了:

select extract(day from age('2013-05-02','2013-04-01'));

所以我需要的是将天数变为32

1 个答案:

答案 0 :(得分:2)

减法似乎更直观。

select '2013-05-02'::date - '2013-04-01'::date

运行此查询以查看结果为31而不是32

的原因
with dates as (
  select generate_series('2013-04-01'::date, '2013-05-02'::date, '1 day')::date as end_date,
                         '2013-04-01'::date as start_date
)
select end_date, start_date, end_date - start_date as difference
from dates
order by end_date

今天和今天之间的差异是零天。这是否重要依赖于应用程序。如果需要,你可以加1。