改写为动态语句返回值如何取得?
create function dt_getsumupstarttime(
@tablename nvarchar(255),
@startTime datetime,
@endTime datetime,
@fieldName1 nvarchar(255))
returns datetime
begin
declare @rettime datetime
declare @sql nvarchar(1000) @sql = 'select s_crtime 
from '+ @tablename +
' where s_crtime >=  ' + convert(varchar(50),@date,121) + ' and s_crtime <=  ' + convert(varchar(50),@endTime,121) +  
' and f_all_bad = 1 and'  + @fieldName1 '= 0 
order by s_crtime asc'
exec(@sql)
-- 但是返回值如何取得
return @rettime
end

解决方案 »

  1.   

    随手敲的,可能有手误@sql =  N'select @mytime=s_crtime  
    from  '+ @tablename + 
    ' where s_crtime  between ' + convert(varchar(50),@date,121) +  ' and ' + convert(varchar(50),@endTime,121) +   
    ' and f_all_bad = 1 and '  + @fieldName1  '= 0  
    order by s_crtime asc ' exec sp_executeSQL @sql,N'@mytime Datetime out',@rettime out