SQL Server 时间算差值-年限

打印 上一主题 下一主题

主题 1014|帖子 1014|积分 3042

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
项目中需要计算使用年限,按月份算。刚开始踩了坑,不足1年应该按1年算。记录下~
 
和当前时间比较,用DATEDIFF函数DateDiff(month,比较的时间,getdate())先算出月份,再除以12算年份
查看代码
  1. --月份差值 2.083333
  2. select CONVERT(decimal,DATEDIFF(MONTH,'2020-10-01 00:00:00',GETDATE()))/12 as MonthDiff
  3. go
复制代码
这里的分母不转Decimal是6位小数,不知道为什么,有知道的大神可以给我解疑下
查看代码
  1.  --月份差值 2.0833333333333333333
  2. select CONVERT(decimal,DATEDIFF(MONTH,'2020-10-01 00:00:00',GETDATE()))/CONVERT(decimal,12) as MonthDiff
  3. go
复制代码
 
用ceiling函数向上取整,这里注意需要先转Decimal类型才能计算
查看代码
  1.  --未转decimal,向上取整 =2
  2. select ceiling(DATEDIFF(MONTH,'2020-10-01 00:00:00',GETDATE())/12) as CusYear
  3. go
  4. --转decimal再向上取整 =3
  5. select ceiling(CONVERT(decimal,DATEDIFF(MONTH,'2020-10-01 00:00:00',GETDATE()))/12) as CusYear
  6. go
复制代码
最终算出2020-10-01到现在,年限3年,Over~

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

天津储鑫盛钢材现货供应商

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表