没有合适的资源?快使用搜索试试~ 我知道了~
首页存储过程根据数据库中的身份证号码参加工作日期更新数据表年龄和工龄
资源详情
资源评论
资源推荐

--根据 T_StaBasInfo 表的身份证号码更新年龄信息
create procedure P_GetAgeByIdCard
as
declare @SIDCard varchar(255)--身份证号码
declare @BirStr varchar(10)--出生日期
declare @NowStr varchar(10)--当前的时间格式为
declare @Age int --人员年龄
declare @AgeStr varchar(10)--人员年龄的字符串
declare @WorkAgeStr varchar(10)--工龄 string
declare @WorkAge int --工龄 int 型
declare @WorkDateStr varchar(10)--参加工作日期
declare @DYZZSJ varchar(10) --入党日期
declare @DYAge int --党龄 int 型
declare @DYAgeStr varchar(10) --党龄 str 型
--declare @DateStr varchar(10)
declare mycursor cursor
for
select idcrd,gb_cjgzsj,DYZZSJ from T_StaBasInfo--查询人员身份证号码、参加工
作时间、入党时间用于后期计算
open mycursor
fetch next from mycursor into @SIDCard,@WorkDateStr,@DYZZSJ
while (@@fetch_status = 0)
begin
set @BirStr=substring(@SIDCard,7,8);--人员出生日期格式为
set @NowStr=CONVERT(varchar(10),GETDATE(),112);--获取现在的日期
set @AgeStr=DATEDIFF(YEAR,@BirStr,@NowStr);--获取人员的年龄四舍五入版本
if substring(@BirStr,5,4)<=substring(@NowStr,5,4)
begin
set @Age = CAST(@AgeStr as int)
end
else
begin
set @Age = CAST(@AgeStr as int)-1 --如果出生日期大于当前日期则计算-1
end;
set @WorkAgeStr=DATEDIFF(YEAR,@WorkDateStr,@NowStr);
if substring(@WorkDateStr,5,4)<=substring(@NowStr,5,4)
begin
set @WorkAge=CAST(@WorkAgeStr as int)
end
else
begin
set @WorkAge=CAST(@WorkAgeStr as int) -1
end;
set @DYAgeStr=DATEDIFF(YEAR,@DYZZSJ,@NowStr);
if substring(@DYZZSJ,5,4)<=substring(@NowStr,5,4)
begin
set @DYAge=CAST(@DYAgeStr as int)
end
else
begin
set @DYAge=CAST(@DYAgeStr as int) -1
end;
update T_StaBasInfo set


















天山映雪
- 粉丝: 4
- 资源: 18
上传资源 快速赚钱
我的内容管理 收起
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助

会员权益专享
安全验证
文档复制为VIP权益,开通VIP直接复制

评论0