none
SQL - Timer RRS feed

  • Pergunta

  • 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

    terça-feira, 15 de julho de 2008 11:18

Respostas

  •  

    Leandro,

     

    O SQL Server possui uma função para trabalhar com data e hora, chamada GetDate(), sendo que, você poderia utilizar este função para obter o valor da hora que esta no servidor, passando esta valor para sua aplicação, através de um simples Select, e utilizar o resultado deste select como valor condicional para o seu Timer.

    terça-feira, 15 de julho de 2008 13:15
    Moderador

Todas as Respostas

  • Leandro,

     

    Mas este timer que você se refere, é gerado por sua aplicação?

    terça-feira, 15 de julho de 2008 11:52
    Moderador
  • Olá, na verdade o "timer" ou melhor, o cálculo de tempo é feito da seguinte maneira:

    SqlCommand cmdAtualizaTempo = new SqlCommand("SELECT DATEDIFF(minute, (SELECT (dataAcomp) FROM manuitens WHERE manuItemId = "

    + GridView2.SelectedRow.Cells[4].Text + "),(SELECT (dataEncam) FROM Manuitens WHERE manuItemId ="

    + GridView2.SelectedRow.Cells[4].Text + "))", databaseConn);

     

    Eh a diferença entre a data do acompanhamento, ou seja, no momento em que o técnico inicia o acompanhamento ou encaminha para outra área responsável ou entao finaliza o chamado. O que não estou conseguindo fazer é fazer com que tal tempo pare de ser calculado quando das 18:00 e recomece no dia seguinte as 8:00. Tal mecanismo poderá calcular a média de tempo gasto numa solicitação, o que não pode incluir o horário não comercial.

     

    Leandro Borges

    terça-feira, 15 de julho de 2008 11:59
  • Leandro,

     

    Então se este cálculo é realizado dentro da aplicação, não seria o caso de utilizar alguma condição que verifique qual é o valor da hora e se estiver dentro da faixa das 18 as 8 o cálculo não será realizado.

     

     

    terça-feira, 15 de julho de 2008 12:54
    Moderador
  • É, o problema é este: como verificar o tempo, parar tal cálculo e continuar posteriormente. Creio que isto seja um assunto para o fórum de desenvolvimento nao eh mesmo?

     

    Leandro

    terça-feira, 15 de julho de 2008 13:04
  •  

    Leandro,

     

    O SQL Server possui uma função para trabalhar com data e hora, chamada GetDate(), sendo que, você poderia utilizar este função para obter o valor da hora que esta no servidor, passando esta valor para sua aplicação, através de um simples Select, e utilizar o resultado deste select como valor condicional para o seu Timer.

    terça-feira, 15 de julho de 2008 13:15
    Moderador
  • Obrigado pela dica Pedro. Tentarei bolar algo com tal função. Obrigado pela dica.

    terça-feira, 15 de julho de 2008 13:20
  • Bem Leandro, como ja mencionado pelo nosso amigo Junior, o ideal eh que vc faca esse controle pela aplicacao, acredito que ficaria mais facil de vc atender essa necessidade.
    Em todo caso talvez ha a possibilidade de vc gravar todo o periodo, ou seja, gravar todas as horas estando elas entre as horas permitidas ou nao e depois subtrair o total de horas nao permitidas (entre 18:00 PM e 8:00 AM). Para isso eu acredito que talvez vc teria que gravar a quantidade de dias que se passou para que vc possa subtrair o valor correto, resu
    mindo, daria muito mais trabalho. Hehe

     

    Qualquer duvida estamos a disposicao.

     

    [ ]s.

     

    terça-feira, 15 de julho de 2008 14:39
    Moderador
  • Entendi Thiago, mas meu problema principal eh o conhecimento em relação a desenvolvimento com C# e SQL, pois comecei ha 2 meses na área de desenvolvimento Sad

     

    Obrigado Thiago.

    terça-feira, 15 de julho de 2008 14:56
  • Entendo Leandro.

    Bem, qualquer duvida estamos a disposicao.

     

    [ ]s.

    terça-feira, 15 de julho de 2008 15:59
    Moderador