none
Diferença Dt e hora RRS feed

  • Pergunta

  • Prezados boa tarde,

    Na SQl, abaixo eu imagino que esteja fazendo certo, porem nao estou conseguindo obter o resultado esperado.

    tenho duas colunas de data

    Ex:

    Abertura                       e       fechamento

    17/10/2010 15:30;35             18/10/2010 17:20:00

    na sentenca eu consegui achar a diferenca de Dias, porem a diferenças as horas nao estou conseguindo.

    agradeço a ajuda de todos

    SQL

    SELECT

     

    ABERTURA

    ,

    PRAZOLIMITE

    ,

    FECHAMENTO

    ,

    /*DateDiff(hh,ABERTURA,FECHAMENTO)/60 As Horas,

    Convert(char(05),DateAdd(minute,DateDiff(n,ABERTURA, FECHAMENTO),FECHAMENTO),14) ,*/

    CODATENDIMENTO

    AS 'ATENDIMENTO',

    ASSUNTOOC

    ,

    HORASMINUTOS

    ,

    HORASMINUTOS

    / 60 AS 'HORA',

    CASE

    WHEN

     

    CODSTATUS = 'C' THEN 'CANCELADO'

    WHEN

     

    CODSTATUS = 'A' THEN 'EM ANDAMENTO'

    WHEN

     

    CODSTATUS = 'T' THEN 'AGUARDANDO TERCEIROS'

    WHEN

     

    CODSTATUS = 'E' THEN 'AGENDADO RESPONDIDO'

    WHEN

     

    CODSTATUS = 'G' THEN 'AGENDADO A RESPONDER'

    WHEN

     

    CODSTATUS = 'R' THEN 'CONCLUIDO A RESPONDER'

    WHEN

     

    CODSTATUS = 'D' THEN 'AGENDADO DESPERTADO'

    WHEN

     

    CODSTATUS IN ('U', 'F','O')

    THEN

     

    'CONCLUIDO' END 'STATUS',

    Substring

     

    (Ltrim(Rtrim(P.NOME)), 1,

    Case

     

    When (Charindex(' ', Ltrim(Rtrim(P.NOME))) - 2) < 0

    Then

     

    Len(Ltrim(Rtrim(P.NOME))) Else Charindex(' ', Ltrim(Rtrim(P.NOME))) - 1 End)

    FROM

     

    hatendimentoext

    INNER

     

    JOIN HATENDENTE AS H ON H.CODCOLIGADA = hatendimentoext.CODCOLIGADA

    AND

     

    H.CODATENDENTE = hatendimentoext.CODATENDENTE

    INNER

     

    JOIN PPESSOA AS P ON P.CODIGO = H.CODPESSOA

    ORDER

     

    BY CODSTATUS

    segunda-feira, 18 de outubro de 2010 19:20

Respostas

  • Oi Ronnie,

    Antes de mais nada, não deixe de utilizar a função que converte para o fuso horário do usuário. Ex:

    dbo.fn_UTCToLocalTime(scheduledstart)

    Sobre a diferença de horas, experimente utilizar o comando datename, de acordo com o exemplo abaixo:  

    (select datename(hour,Campo_de_Data))

    []´s


    Carlos Amorim Junior
    "Já ajudou a comunidade hoje?"
    http://www.dynamicscrm.com.br
    • Sugerido como Resposta Carlos Amorim Junior segunda-feira, 18 de outubro de 2010 22:45
    • Marcado como Resposta Ronnie Von quinta-feira, 21 de outubro de 2010 10:14
    segunda-feira, 18 de outubro de 2010 19:36
  • Olá Ronnie,

     

    Você pode utilizar a função DATEDIFF:

    http://msdn.microsoft.com/pt-br/library/ms189794.aspx

     

    Ela irá retornar a diferença entre duas data no formato que desejar (horas, dias, minutos...), como por exemplo:

    DATEDIFF(hour, campoDataInicio, campoDataFim)
    

     

    Abraço,

     


    Ricardo Alves
    www.ricardoalves.me
    • Sugerido como Resposta RicardoAlves quarta-feira, 20 de outubro de 2010 15:49
    • Marcado como Resposta Ronnie Von quinta-feira, 21 de outubro de 2010 10:14
    terça-feira, 19 de outubro de 2010 22:50
  • Oi Ronnie,

    Você substituiu o "Campo_de_Data" pelo seu campo que contém a data?

    Vi que você já utilizou DATEDIFF e DATENAME, mas faça o seguinte.

    select

     

     

    DATEDIFF(D,GETDATE()-2,GETDATE()) as [Dias],

     

    DATEDIFF(HH,GETDATE()-2,GETDATE()) as [Horas],

     

    DATEDIFF(MINUTE,GETDATE()-2,GETDATE()) as [Minutos],

     

    DATENAME(HH,GETDATE()) as [Parte da Hora Atual],

     

    DATENAME(HH,GETDATE())-3 as [Parte da Hora Atual - 3 horas],

     

    convert(numeric,DATENAME(HH,GETDATE())) - convert(numeric,DATENAME(HH,GETDATE())-3) as [Exemplo de Diferena de Horas]

     

     

     

    Observe os resultados. Acho que lhe ajudarão.

    Referências:

    http://msdn.microsoft.com/pt-br/library/ms174395.aspx

    http://msdn.microsoft.com/pt-br/library/ms189794.aspx

    []´s


    Carlos Amorim Junior
    "Colabore! A comunidade precisa de você."
    http://www.dynamicscrm.com.br
    • Sugerido como Resposta Carlos Amorim Junior quarta-feira, 20 de outubro de 2010 20:37
    • Marcado como Resposta Ronnie Von quinta-feira, 21 de outubro de 2010 10:14
    quarta-feira, 20 de outubro de 2010 18:10

Todas as Respostas