![](/img/trans.png)
[英]How to calculate the number of months and days between two dates, without returning negative values in SQL Server
[英]Calculate number of months between 2 dates SQL
我想计算两个日期之间的整月数
declare @startdate date='2021-03-03';
declare @enddate date='2021-05-02';
select datediff(mm,@startdate,@enddate)
这给了我 output 为 2 但我希望它为 1 因为它应该只计算整月。 所以从 03/03/2021 到 03/04/2021 是 1 个月,从 03/04/21 到 02/05/21 仍然不是整月。 所以,在这个例子中,答案应该是 1。 我如何实现这一目标?
一种方法是
declare @startdate date='2021-03-03';
declare @enddate date='2021-05-02';
select datediff(mm,@startdate,@enddate) - case when dateadd(mm, datediff(mm,@startdate,@enddate), @startdate) > @enddate then 1 else 0 end
在某些情况下,整月是一件棘手的事情。
如果您不关心这些情况,而只是想要一个简单的规则,例如“如果 EndDay>=StartDay 则为整月,您可以使用“ Case When Day(Enddate)<Day(Startdate) Then 1 Else 0 End来调整差异"
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.