------------------------------------------------------------------------ --说明:此SQL自定义方法是用于结合提问状态(已解决,未解决,管理员强制终止),问题创建 --时间,这2方面判断提问是否过期,解决,未解决过期,管理员强行终止等状态^-^ ------------------------------------------------------------------------ ALTER function dbo.fn_gcc_getQuestionState ( --问题当前状态 @state tinyint, --问题提出时间 @questiondate datetime, --当前时间(用户自定义函数中不可使用不确定getdate()函数,哭吧) @nowdate datetime, --问题过期天数 @validityday int ) --定义该函数有返回值及返回值类型 returns tinyint as begin --声明变量记录过期天数^-^ declare @passday int --声明一返回值变量,SQL中不能像C#的函数那样可以任意地方用return返回值,他的返回语句必须在最后一行进行! declare @Return tinyint ---------------------------------------------------------------- --愿望是好的,但是破灭啦 %-% --在用户自定义函数中不可使用不确定的getdate()函数 --set @nowdate = getdate() --错误 ---------------------------------------------------------------- --问题未解决 if @state = 0 begin --计算时间差^-^ set @passday = datediff(d,@questiondate,@nowdate) if @passday > @validityday set @Return = 2 --问题未解决,过期关闭问题 else set @Return = 3 --问题未解决,未过期未关闭问题 end --问题解决 else if @state = 1 set @Return = 1 --问题解决,关闭问题 --问题被管理员大叔强行终止@o@(大叔好厉害!),管理员只能终止问题尚未解决且未过期的问题 else set @Return = 2 --问题未解决,关闭问题 --最后返回值^-^ return @Return end