计算两个日期之间的整年和部分月份

问题描述 投票:1回答:1

我想知道如何计算两个日期之间的完整年份和完整月份数,并将它们合并为一列:

[例如:我的开始日期是一列,名为“ TransferDate” = 7/1/2017,今天(11/14/2019),我想要的输出将是一列,名为“ Age” = 2.3

2年(2017-2019).3整月(八月,九月和十月)

sql datediff
1个回答
0
投票

看看,看看是否能满足您的需求。

Declare @date1 date = '11/01/2001'
Declare @date2 date = '12/01/2002'

Select @date1
    ,@date2
    ,Case 
    when datediff(M,@date1,@date2) < 12 then ''
    when datediff(M,@date1,@date2) < 24  then 'one year'
    else cast(floor(datediff(M,@date1,@date2)/12) as varchar(20)) + ' Years'
    end  +  ' ' +
Case 
    when datediff(M,@date1,@date2) - floor(datediff(M,@date1,@date2)/12)*12 = 0  then ''
    when datediff(M,@date1,@date2) - floor(datediff(M,@date1,@date2)/12)*12 = 1 then 'one month'
    else cast(datediff(M,@date1,@date2) - floor(datediff(M,@date1,@date2)/12)*12 as varchar(20)) + ' Months'
    end
© www.soinside.com 2019 - 2024. All rights reserved.