Array
(
)

procedure para retornar um intervalo de tempo

Cappelletia
   - 29 set 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

Anderson_dpa
   - 12 out 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

Nigro
   - 17 mar 2008

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

Edu2099
   - 20 mar 2008

Veja se isso te ajuda:

#Código

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