procedure para retornar um intervalo de tempo
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
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
Curtidas 0
Respostas
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
Anderson
dpasistemas@bol.com.br
GOSTEI 0
Nigro
29/09/2003
Olá fiz isso e não funcionou teria um exemplo prático?
GOSTEI 0
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