0
我有这样的功能:如果分钟小于60然后取出小时部分从结果
ALTER FUNCTION [dbo].[testfunctionstacknew] (@dec NUMERIC(18, 2)) RETURNS Varchar(50)
AS
BEGIN
DECLARE
@hour decimal(18,2),
@Mns decimal(18,2),
@second decimal(18,3)
DECLARE @Average Varchar(50)
select @hour=CONVERT(int,@dec/60/60)
SELECT @Mns = convert(int, (@dec/60) - (@hour * 60));
select @[email protected] % 60;
SELECT @Average =
convert(varchar(9), convert(int, @hour)) + ':' +
-- right('00' + convert(decimal(10,0), convert(decimal(18,2), @hour)), 2) + ':' +
right('00' + convert(decimal(10,0), convert(decimal(18,2), @Mns)), 2) + ':' +
right('00' + CONVERT(decimal(10,0), convert(varchar(10), @second)), 6)
RETURN @Average
END
,我有一个这样的存储过程:
select dbo.testfunctionstacknew(
convert(decimal(10,1),
avg(convert(numeric(18,2), datediff(ss, t.dtime, t.PAICdate ))))
) as Avgparkingtime from (select top 10 * from transaction_tbl where locid=6 and dtime >= getdate()-1 order by transactID desc) t
在执行存储的过程,如果平均时间不到60分钟我得到这样的结果:
Avgparkingtime :
0:25:33
如果平均时间是不到60分钟,然后我不想在分钟前得到零,(这次只需要显示分钟和秒)..只有一小时需要显示分钟是否大于60分钟......我该怎么办这个?我必须在我的函数中做出什么改变?任何帮助是非常可观..
是,,它工作得很好....感谢ü – user3106114
太好了!请记住尽可能将其标记为答案! –
先生,我还有一个疑问,我可以问吗? – user3106114