gpt4 book ai didi

PostgreSQL:查询以查找空闲天数?

转载 作者:行者123 更新时间:2023-11-29 13:45:33 25 4
gpt4 key购买 nike

我有如下表格。此表显示了从开始日期结束日期哪些车辆将对用户免费/可用

enter image description here

假设

从 2018-01-15 到 2020-02-28 有车辆 id = 1 可供用户使用(格式为 yyyy-mm-dd)。在此期间,任何用户都可以租用车辆。

我想要什么:

我想计算特定时期的空闲天数。

这里的时间段:Jan-2018 表示(1-Jan-201831-Jan-2018)。

免费天数的计算标准:

对于车辆 ID = 1 --> 开始日期 = 2018-01-15 和结束日期 = 2020-02-28

2018 年 1 月 = 16 天(因为 1 月的总天数是 31,但我们的开始日期是从 2018-01-15 开始,车辆 ID =1)

2018 年 2 月 = 28 天(2018-01-152020-02-28)

最佳答案

Select enddate, startdate, CASE 
WHEN startdate<= '2017-01-01' and enddate>= '2017-01-31' THEN ('2017-01-31'::date - '2017-01-01'::date)+1
WHEN startdate<= '2017-01-01' and enddate< '2017-01-31' and enddate>= '2017-01-01' THEN (enddate::date - '2017-01-01') +1
WHEN startdate> '2017-01-01' and enddate>= '2017-01-31' and startdate<= '2017-01-31' THEN (('2017-01-31'::date - '2017-01-01'::date)+1) - EXTRACT(DAY FROM startdate::date))+1

WHEN startdate> '2017-01-01' and enddate< '2017-01-31' and startdate<= '2017-01-31' and enddate>= '2017-01-01' THEN (enddate::date - startdate::date)+1
end
as td from table1

关于PostgreSQL:查询以查找空闲天数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48921322/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com