![](/img/trans.png)
[英]SQL User Defined Function to calculate the number of days between two dates
[英]Calculate number of payments done between two dates SQL
我想计算 SQL 中两个日期之间的付款次数,包括开始日期。
例如,如果第一个付款日期是 2020 年 8 月 28 日,随后的付款在每个月的 28 日完成。
我想计算到目前为止完成了多少付款。
我试过 select datediff(month,'2020-08-28 00:00:00.000','2021-03-28 00:00:00.000') 它给出 7,但我希望它是 8。
如果我尝试 select datediff(month,'2020-08-28 00:00:00.000','2021-04-01 00:00:00.000') 它给出 8。
我想知道从 28/08/2020 开始的月数。 2020 年 8 月 28 日应计为 1。
期望的结果应该如下
28/08/2020 - 1
28/09/2020 - 2
28/10/2020 - 3
28/11/2020 - 4
28/12/2020 - 5
28/01/2021 - 6
28/02/2021 - 7
28/03/2021 - 8
请您给点建议。 谢谢你。
编辑
如果第一个付款日期是 2020 年 1 月 30 日,因为没有 2 月 30 日,它应该是月底的日期,并且应该显示为到目前为止已完成的 2 笔付款。
这是你想要的?
Declare @dates Table (PaymentDate date);
Insert Into @dates (PaymentDate)
Values ('2020-08-28'), ('2020-09-28'), ('2020-10-28'), ('2020-11-28'), ('2020-12-28'), ('2021-01-28'), ('2021-02-28'), ('2021-03-28');
Select *
, PaymentCount = datediff(month, min(PaymentDate) over(Order By PaymentDate), PaymentDate) + 1
From @dates;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.