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