項目中需要計算使用年限,按月份算。剛開始踩了坑,不足1年應該按1年算。記錄下~ 和當前時間比較,用DATEDIFF函數DateDiff(month,比較的時間,getdate())先算出月份,再除以12算年份 查看代碼 --月份差值 2.083333 select CONVERT(decimal,D ...
項目中需要計算使用年限,按月份算。剛開始踩了坑,不足1年應該按1年算。記錄下~
和當前時間比較,用DATEDIFF函數DateDiff(month,比較的時間,getdate())先算出月份,再除以12算年份
查看代碼
--月份差值 2.083333
select CONVERT(decimal,DATEDIFF(MONTH,'2020-10-01 00:00:00',GETDATE()))/12 as MonthDiff
go
這裡的分母不轉Decimal是6位小數,不知道為什麼,有知道的大神可以給我解疑下
查看代碼
--月份差值 2.0833333333333333333
select CONVERT(decimal,DATEDIFF(MONTH,'2020-10-01 00:00:00',GETDATE()))/CONVERT(decimal,12) as MonthDiff
go
用ceiling函數向上取整,這裡註意需要先轉Decimal類型才能計算
查看代碼
--未轉decimal,向上取整 =2
select ceiling(DATEDIFF(MONTH,'2020-10-01 00:00:00',GETDATE())/12) as CusYear
go
--轉decimal再向上取整 =3
select ceiling(CONVERT(decimal,DATEDIFF(MONTH,'2020-10-01 00:00:00',GETDATE()))/12) as CusYear
go
最終算出2020-10-01到現在,年限3年,Over~