SQL Server 时间算差值/常用函数
  UBPOnjKCWyGo 2023年11月01日 88 0

项目中需要计算使用年限,按月份算。刚开始踩了坑,不足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)
【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
  az2L92p17wYQ   2024年04月12日   68   0   0 SQL Server
  Ol6Fq6uc0Glb   2024年03月24日   186   0   0 SQL Server
  Ol6Fq6uc0Glb   2024年03月24日   72   0   0 SQL Server
UBPOnjKCWyGo