簡體   English   中英

如何只計算兩個日期之間的日期在postgres sql查詢中。

[英]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 datetimestamptimestamp 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');

http://rextester.com/RBTO71933

兩者都會給出結果。

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM