关于SQL2000日期计算的问题

来源:百度知道 编辑:UC知道 时间:2024/05/14 15:52:37
SQL2000数据库中有如下字段
序号 姓名 进厂时间 工龄 基本工资 工龄工资 养老金 总工资
分别是 id xm rcsj gl jbgz glgz ylj ztg
求日期计算方法
如进厂时间为 2003-1-15 在 2007-1-15 时才能算一年工龄 14号之前不足一年全部舍去 如何求工龄的值
SQL语句请写出来 谢谢

update gongzi set gl=DateDiff(mm,rcsj,'2007-1-24')/12
update gongzi set glgz=DateDiff(mm,rcsj,'2007-1-24')/12*20

select xm,rcsj,
case (year(getdate()-rcsj)-1900)/4 //判断工龄
when 0 then 0 //给工龄字段赋值
when 1 then 1
when 2 then 2
when 3 then 3
…… //要看你们公司的情况来定工龄到多少为止
end as gl
from yourtable
这样就可以在工龄(gl)字段中看到每个员工的工龄了
显示结果一共三个字段( xm rcsj gl )需要的话可以自己加

select id,xm,rcsj,(year(getdate()-rcsj)-1900) as gl,jbgz,glgz,ylj,ztg from yourtable
用datediff只是年数相减但是并不考虑月份日期的差别,是不行的,得用上面的方法


select case when(datediff(year, '2003-01-15', '2007-01-15' )>=4) then 1 else 0 end
来判断

select * from 某表 where datediff('yyyy',rcsj, getdate())>0

year(new()-rcsj)
这种形式
具体自己写