項目中需要計算使用年限,按月份算。剛開始踩了坑,不足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 DATEDIFF(MONTH,'2020-10-01 00:00:00',GETDATE())/12 as CusYear
go
--跨月即+1
select DATEDIFF(MONTH ,'2022-10-31 00:00:00','2022-11-1 00:00:00')
最終算出2020-10-01到現在,年限2年,Over~
--向上取整 =3
select ceiling(2.0833333333333333333)
--取整 =2
select floor(2.0833333333333333333)