假设我给了两个日期,如果相差一个月,则应显示为30天。甚至几个月也需要转换为我尝试过的使用age(date,now():: timestamp不带时区的日期)的天,但是它是给出months-dates- years格式。例如:10周一24天13:57:40.5265。但是我需要遵循以下方式。例如,如果有两个月的差异,那么我需要60天的输出。
不要将age()函数用于日期/时间算术。它仅返回“符号”结果(对于人类表示来说已经足够好,但是对于日期/时间计算几乎没有意义;与标准差相比)。
age()
标准差运算符(-)返回既以天为结果date,timestamp和timestamp with time zone(前者的回报日内int,后者两个返回天基intervalS):
-
date
timestamp
timestamp with time zone
int
interval
从基于日期的间隔中,您可以使用以下extract()功能提取日期:
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