大家好,我是考100分的小小码 ,祝大家学习进步,加薪顺利呀。今天说一说SQL Server 时间算差值-年限[亲测有效],希望您对编程的造诣更进一步.
项目中需要计算使用年限,按月份算。刚开始踩了坑,不足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~
原文地址:https://www.cnblogs.com/youyoufei/archive/2022/11/14/16888739.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
转载请注明出处: https://daima100.com/4548.html