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 时失败。

我这个错在哪里啊
展开
 我来答
鲜美还清湛灬白桦N
推荐于2016-06-18 · TA获得超过620个赞
知道小有建树答主
回答量:404
采纳率:50%
帮助的人:520万
展开全部
/*
    存储过程的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
*/
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式