Array
(
)

SQL - Cálculo de tempo - Timer

Leandroborges
   - 15 jul 2008

Olá pessoal. Sou iniciante e estou desenvolvendo uma aplicação HelpDesk em C# usando SQL2005. Estou capturando o tempo que se leva para se atender a um chamado. Porém se um chamado eh aberto durante o horário comercial (antes das 18) e o mesmo não é finalizado durante este período, o tempo de duração do acompanhamento deste se estrapola ou seja, quando eu for fazer a diferenca de tempo entre a abertura e o fechamento do mesmo uso o SQL através do DATEDIFF, o que inclui todo o tempo fora do horário comercial, não refletindo o tempo correto. Alguma idéia de como criar um mecanismo em SQL para que a partir das 18 o timer pare e continue a partir da manha seguinte?

Leandro Borges

Renato Tavares
   - 16 nov 2008

Olá, 8)

Você já tentou utilizar a função WAITFOR do SQL ? :shock:

Segue:

A função WAITFOR suspende a execução dependendo do evento
Os eventos podem ser:
Delay – quantidade de tempo para executar (24h)
Time – especifica o horário em para executar

WAITFOR
Sintaxe:
WAITFOR {DELAY ´time´ | TIME ´time´}

Exemplos:

Exemplo 1: Exibe a hora a cada 2 segundos
DECLARE @A INT
SELECT @A=1

WHILE @A < 5
BEGIN
WAITFOR DELAY ´00:00:02´
SELECT GETDATE()
SELECT @A = @A + 1
END

Exemplo 2: Checa a alocação e uso das páginas do BD
BEGIN
    WAITFOR TIME ´22:00´
    DBCC CHECKALLOC
END

Espero er ajudado..!! :wink: