2个回答
展开全部
计算工龄,我有一个函数,可以帮助你。可以再次基础上去做下改动就好。
调用方式:select fn_GetWorkYear('2011-11-23','2019-10-25')
create function [dbo].[fn_GetWorkYear]
(
@beginday datetime, --开始日期
@endday datetime --结束日期
)
returns int
as
begin
if @beginday > @endday
begin
return 0;
end
declare @workyear int
select @workyear = datediff(year, @beginday, @endday)-1--年份差值
if datepart(month, @endday) > datepart(month, @beginday)--月份超过
begin
select @workyear = @workyear + 1
end
if datepart(month, @endday) = datepart(month, @beginday)--月份一样
begin
if datepart(day, @endday) >= datepart(day, @beginday)--日超过
begin
select @workyear = @workyear + 1
end
end
return @workyear ;
End
GO
调用方式:select fn_GetWorkYear('2011-11-23','2019-10-25')
create function [dbo].[fn_GetWorkYear]
(
@beginday datetime, --开始日期
@endday datetime --结束日期
)
returns int
as
begin
if @beginday > @endday
begin
return 0;
end
declare @workyear int
select @workyear = datediff(year, @beginday, @endday)-1--年份差值
if datepart(month, @endday) > datepart(month, @beginday)--月份超过
begin
select @workyear = @workyear + 1
end
if datepart(month, @endday) = datepart(month, @beginday)--月份一样
begin
if datepart(day, @endday) >= datepart(day, @beginday)--日超过
begin
select @workyear = @workyear + 1
end
end
return @workyear ;
End
GO
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询