SQL server 存储过程varchar到int类型转换
alterprocP_判断是否闰年asbegindeclare@时间intset@时间=datepart(year,'2000-02-01')returnCASEWHEN...
alter proc P_判断是否闰年
as
begin
declare @时间 int
set @时间= datepart(year,'2000-02-01')
return
CASE WHEN(@时间 % 4 = 0 AND @时间 % 100 <> 0) or (@时间 % 400 = 0)then '是闰年'
else '不是闰年'
end
end
exec P_判断是否闰年
报错:在将 varchar 值 '是闰年' 转换成数据类型 int 时失败。
我这个错在哪里啊 展开
as
begin
declare @时间 int
set @时间= datepart(year,'2000-02-01')
return
CASE WHEN(@时间 % 4 = 0 AND @时间 % 100 <> 0) or (@时间 % 400 = 0)then '是闰年'
else '不是闰年'
end
end
exec P_判断是否闰年
报错:在将 varchar 值 '是闰年' 转换成数据类型 int 时失败。
我这个错在哪里啊 展开
1个回答
展开全部
/*
存储过程的return只能返回int类型的数据,并且只这样接收返回值的
declare @A int
Exec @A=P_判断是否闰年
select @A
*/
--你可以改成这样
alter proc P_判断是否闰年
as
begin
declare @时间 int
set @时间= datepart(year,'2000-02-01')
select CASE WHEN(@时间 % 4 = 0 AND @时间 % 100 <> 0) or (@时间 % 400 = 0)then '是闰年'
else '不是闰年'
end
end
--也可以这样
alter proc P_判断是否闰年 (@Rst Varchar(10) output)
as
begin
declare @时间 int
set @时间= datepart(year,'2000-02-01')
Set @Rst= CASE WHEN(@时间 % 4 = 0 AND @时间 % 100 <> 0) or (@时间 % 400 = 0)then '是闰年'
else '不是闰年'
end
end
/*
declare @A varchar(10)
Exec P_判断是否闰年 @A output
select @A
*/
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询