ALTER function CheckBirthday(@mybirthday datetime,@nowdatetime datetime,@daycount int) returns int
as
begin
declare @i int,@j int, @tempdate datetime
set @i=0 --i=0表示生日跨年
set @j=0 --j=0表示当前日前跨年
if(year(@mybirthday) = year(@mybirthday+@daycount))
begin
set @i=1
end
if(year(@nowdatetime) = year(@nowdatetime+@daycount))
begin
set @j=1
end
if(@i=1 and @j=0)--当前时间跨年,生日不跨年
begin
set @tempdate=dateadd(year,year(@nowdatetime)-year(@mybirthday)+1,@mybirthday)
if((datediff(day,@nowdatetime,@tempdate)<=@daycount) and datediff(day,@nowdatetime,@tempdate)>=0)
begin
return 1;
end
end
else
begin --两个日期都跨年或都不跨年或生日跨年当前时间不跨年
set @tempdate=dateadd(year,year(@nowdatetime)-year(@mybirthday),@mybirthday)
if((datediff(day,@nowdatetime,@tempdate)<=@daycount) and datediff(day,@nowdatetime,@tempdate)>=0)
begin
return 1;
end
end
return 0
end