如下程序,我该怎么把函数转化为sql语句!急需指点!

create function [dbo].[dhp](@stcd varchar(10),@d1 varchar(100) )-- stcd 表示站点编号 d1表示时间
returns decimal
as
begin
declare @dhp decimal
if (datename(hour,@d1)>'8')
select @dhp= sum(drp) from st_pptn_r where stcd=@stcd and tm between @d1 
and convert(varchar(100),year(dateadd(day,1,@d1)))
+'-'+convert(varchar(100),month(dateadd(day,1,@d1)))
+'-'+convert(varchar(100),day(dateadd(day,1,@d1)))
+' 8:00:00'
else
select @dhp= sum(drp) from st_pptn_r where stcd=@stcd 
and tm between convert(varchar(100),year(dateadd(day,-1,@d1)))
+'-'+convert(varchar(100),month(dateadd(day,-1,@d1)))
+'-'+convert(varchar(100),day(dateadd(day,-1,@d1)))
+' 9:00:00' and @d1
return @dhp
end 

慕村9548890
浏览 76回答 1
1回答

桃花长相依

select case when stcd='stcd' and tm between 'd1' and convert(varchar(100),year(dateadd(day,1,'d1')))+'-'+convert(varchar(100),month(dateadd(day,1,'d1')))+'-'+convert(varchar(100),day(dateadd(day,1,'d1')))+' 8:00:00' then sum(drp) when stcd='stcd' and tm between convert(varchar(100),year(dateadd(day,-1,'d1')))+'-'+convert(varchar(100),month(dateadd(day,-1,'d1')))+'-'+convert(varchar(100),day(dateadd(day,-1,'d1')))+' 9:00:00' and 'd1' then sum(drp) end drpsum from st_pptn_r你把'stcd'和'd1'换成具体值,试试看。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

SQL Server