[英]how to calculate only days between two dates in postgres sql query .
假設我給了兩個日期,如果相差一個月,那么應該顯示為30天。甚至幾個月也需要轉換為我嘗試過的使用age(date,now():: timestamp不帶時區)的天數,但是提供months-dates-years格式。 例如:10周一24天13:57:40.5265。但是我需要遵循以下方式。 例如,如果有兩個月的差異,那么我需要60天的輸出。
不要將age()
函數用於日期/時間算術。 它僅返回“符號”結果 (對於人類表示而言已經足夠好,但是對於日期/時間計算幾乎沒有意義;與標准差相比)。
標准差運算符( -
)返回timestamp with time zone
date
, timestamp
和timestamp with time zone
的基於天的結果(前者返回day為int
,后兩個返回基於day的interval
s):
從基於天的間隔中,您可以使用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');
兩者都會給出結果。
select make_interval(days => ((extract(epoch from '2016-04-10'::date) - extract(epoch from '2016-02-10'::date))/(60*60*24))::integer)::text;
select format('%1$s days', ((extract(epoch from '2016-04-10'::date) - extract(epoch from '2016-02-10'::date))/(60*60*24))::integer);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.