admin

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

sql

假设我给了两个日期,如果相差一个月,则应显示为30天。甚至几个月也需要转换为我尝试过的使用age(date,now()::
timestamp不带时区的日期)的天,但是它是给出months-dates-
years格式。例如:10周一24天13:57:40.5265。但是我需要遵循以下方式。例如,如果有两个月的差异,那么我需要60天的输出。


阅读 187

收藏
2021-07-01

共1个答案

admin

不要将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');

http://rextester.com/RBTO71933

2021-07-01