如何在 postgres sql 查询中仅计算两个日期之间的天数。

sur*_*esh 1 sql postgresql date-arithmetic

假设我给出了两个日期,如果差是一个月,那么它应该显示为 30 天。即使是几个月也需要转换成我已经尝试过的天数(日期,现在():: 没有时区的时间戳)但它是给出月-日-年格式。例如:10 mons 24 days 13:57:40.5265.但我需要以下方式。例如,如果有两个月的差异,那么我需要输出 60 天。

poz*_*ozs 10

不要将该age()函数用于日期/时间算术。它只返回“符号”结果(对于人类表示来说足够好,但对于日期/时间计算几乎没有意义;与标准差异相比)。

标准差运算符(-返回既以天为结果datetimestamptimestamp with time zone(前者的回报日内int,后者两个返回天基intervalS):

从基于天的时间间隔中,您可以使用以下extract()函数提取天数:

select current_date - '2017-01-01',
       extract(day from now()::timestamp - '2017-01-01 00:00:00'),
       extract(day from now()            - '2017-01-01 00:00:00Z');
Run Code Online (Sandbox Code Playgroud)

http://rextester.com/RBTO71933