procedure para retornar um intervalo de tempo

SQL Server

29/09/2003

Bom Dia,
Estou criando um uma procedure para me retornar um intervalo de tempo (tempo final - tempo inicial). Sou bastante leigo em Sql Server e não sei qual a sintaxe correta, pois ele não aceita subtrair @ini do @fim(abaixo o código). Outro detalhe eu posso usar return em uma procedure?

Grato pela Atenção
Anderson


CREATE PROCEDURE BUSCA10
AS
DECLARE @INI GETDATE
SELECT COUNT(*)
FROM CATEGORIAS
GO
DECLARE @FIM GETDATE
GO
DECLARE @TEMPO NUMERIC
SET @TEMPO = @FIM - @INI :?:
GO


Cappelletia

Cappelletia

Curtidas 0

Respostas

Anderson_dpa

Anderson_dpa

29/09/2003

A solução ideal para vc é criar uma função (function), vc pode manter a mesma estrutura para definir um valor de retorno vc deve criar uma variável com o parâmetro OUTPUT logo após a sua criação



Anderson
dpasistemas@bol.com.br


GOSTEI 0
Nigro

Nigro

29/09/2003

Olá fiz isso e não funcionou teria um exemplo prático?


GOSTEI 0
Edu2099

Edu2099

29/09/2003

Veja se isso te ajuda:

CREATE PROCEDURE BUSCA10

AS
DECLARE 
@INI DATETIME,
@FIM DATETIME,
@TEMPO INT

SELECT @INI = GETDATE()

SELECT 
COUNT(*)
FROM 
CATEGORIAS

SELECT @FIM = GETDATE()

SELECT @TEMPO = DATEDIFF(MS, @INI, @FIM) -- DIFERENÇA EM MILISSEGUNDOS

RETURN @TEMPO
GO

---- CÓDIGO PARA TESTAR:

DECLARE @TESTE INT

EXEC @TESTE = BUSCA10

SELECT @TESTE  -- ESTE É O TEMPO DECORRIDO



GOSTEI 0
POSTAR