如何计算工龄???

rencaitian 2006-07-05 09:31:20
目前算法:
在视图中,DATEDIFF(day, 满试日期, GETDATE()) / 365来计算工龄,
但是,问题出现了,有瑞年366天的,所以会有误差。
我现在工龄要精确到月就可以了,比如满试日期是2000年7月1日-31日之间的,则2006年7月份的工龄就是6年。
我现在 怎么在视图中实现呢??????
现在有一个算法:
year(getdate())-year(满试日期)-1 + if(month(getdate)>=month(满试日期),1,0)
但是这样写在视图里语法错误,希望高手给指点指点。
...全文
267 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
LouisXIV 2006-07-05
  • 打赏
  • 举报
回复
--视图里就是下面这样,不要随便把Excel的语法通过用来

select ......
(year(getdate())-year(满试日期)-1 + case when month(getdate)>=month(满试日期) then 1 else 0 end)as
工龄
from ...........
rencaitian 2006-07-05
  • 打赏
  • 举报
回复
欧是直接写在试图里的
LouisXIV 2006-07-05
  • 打赏
  • 举报
回复
--上面的放弃,LZ的那个算法是Execel下的算法,SQL里当然不可以用
--改一下
select year(getdate())-year(满试日期)-1 + case when month(getdate)>=month(满试日期) then 1 else 0 end
LouisXIV 2006-07-05
  • 打赏
  • 举报
回复
select rtrim((datediff(month,0,getdate())-datediff(month,0,'2000-7-1'))/12)+'年'+rtrim((datediff(month,0,getdate())-datediff(month,0,'2000-7-1'))%12)+'月'

22,210

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧