none
Arredondar hora RRS feed

  • Pergunta

  • Tenho o seguinte campo que trata uma hora que vem do banco:

    CONVERT(NVARCHAR, CONVERT(DATETIME, P.REF/24), 108) AS HORAS

    Ele retorna:

     03:56:59
     00:43:12

    O que preciso: Retornar somente as horas e minutos arrendando da seguinte forma:

     Se segundos for > 30 : 03:57 (ex: 03:56:59)
     Se segundos for < 30 : 00:43 (ex: 00:43:12)
    sexta-feira, 10 de fevereiro de 2017 13:49

Respostas

  • Bom dia,

    otaciojb, experimente mais ou menos dessa forma:

    declare @Ref decimal(10, 4);
    set @Ref = 3.95;
    
    with CTE_Conv as
    (
        select CONVERT(DATETIME, @REF/24) DataHora
    )
    select 
        DataHora,
        dateadd
            (minute, 
             datediff(minute, 0, DataHora) + 
             case when datepart(second, DataHora) > 30 then 1 else 0 end, 
             0)
    from CTE_Conv

    Espero que ajude


    Assinatura: http://www.imoveisemexposicao.com.br

    • Marcado como Resposta otaciojb sexta-feira, 10 de fevereiro de 2017 14:15
    sexta-feira, 10 de fevereiro de 2017 14:09

Todas as Respostas

  • Tente assim:

    select case when datepart(s, getdate()) >= 30 then convert(varchar(5), dateadd(mi, 1, getdate()),108) else convert(varchar(5), getdate(),108) end

    Att,


    Antero Marques

    _______________________________________________________________________________
    Se a resposta for útil, marque como útil, se respondeu totalmente sua dúvida, marque como resposta. O Fórum MSDN é utilizado também como base de conhecimento, então é responsabilidade de todos mantê-lo organizado e funcional.



    sexta-feira, 10 de fevereiro de 2017 14:07
  • Bom dia,

    otaciojb, experimente mais ou menos dessa forma:

    declare @Ref decimal(10, 4);
    set @Ref = 3.95;
    
    with CTE_Conv as
    (
        select CONVERT(DATETIME, @REF/24) DataHora
    )
    select 
        DataHora,
        dateadd
            (minute, 
             datediff(minute, 0, DataHora) + 
             case when datepart(second, DataHora) > 30 then 1 else 0 end, 
             0)
    from CTE_Conv

    Espero que ajude


    Assinatura: http://www.imoveisemexposicao.com.br

    • Marcado como Resposta otaciojb sexta-feira, 10 de fevereiro de 2017 14:15
    sexta-feira, 10 de fevereiro de 2017 14:09
  • Deu certo, isso mesmo , Obrigado !
    sexta-feira, 10 de fevereiro de 2017 14:15
  • Qual e o formato e o tipo de dados da coluna 
    P.REF ??

    Wesley Neves

    sexta-feira, 10 de fevereiro de 2017 14:19