Sql Server判断生日是否跨年

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

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值