Array
(
    [0] => stdClass Object
        (
            [Votos_Balanceados] => 1
            [id] => 531185
            [titulo] => Arrendondar casas decimais em Datas
            [dataCadastro] => DateTime Object
                (
                    [date] => 2015-09-09 15:38:30
                    [timezone_type] => 3
                    [timezone] => America/Sao_Paulo
                )

            [isFirstPost] => -1
            [idUsuario] => 332951
            [status] => A
            [isExample] => 
            [NomeUsuario] => Fabiano Carvalho
            [Apelido] => FaabiianooC
            [Foto] => 332951_20140826143737.jpg
            [Conteudo] => Qual seu banco de dados? É SQL Server ou Firebird?

Se for firebird não sei como realizar o que precisa, mas se for sql server é necessário realizar algo do tipo

[code]select convert(varchar(5),cast(cast(getdate() + 1 as float) - cast(getdate() as float) as datetime),108) [/code] ) )

Arrendondar casas decimais em Datas

João Cristo
   - 08 set 2015

Bom dia Prezados(s),
Tenho o seguinte comando abaixo:
datediff (hour, ORDSERV.DATPRO, MIN(ORDXFUN.DATHORINI)) || ':' ||MOD (datediff (minute, ORDSERV.DATPRO, MIN(ORDXFUN.DATHORINI)), 60) AS ATENDIMENTO
Com o seguinte retorno:
ATENDIMENTO
2:0.0000000000000000
Preciso arredondar este valor para que as horas sejam apresentadas como:
02:00 ou 2:00

Post mais votado

Faabiianooc
   - 09 set 2015

Qual seu banco de dados? É SQL Server ou Firebird?

Se for firebird não sei como realizar o que precisa, mas se for sql server é necessário realizar algo do tipo

#Código

select convert(varchar(5),cast(cast(getdate() + 1 as float) - cast(getdate() as float) as datetime),108) 

João Cristo
   - 09 set 2015

Obrigado pelo retorno, infelizmente o banco é o Firebird.

Alex Lekao
   - 09 set 2015

utilize o cast, acredito que consiga o resultado que vc deseja.

Cast - Firebird

João Cristo
   - 10 set 2015

Consegui com o cast arredondar o valor dos minutos, porém, não resolveu o problema, pois preciso formatar o resultado em HH:MM:SS para inserir em um formulário.

Consulta:

datediff (hour, ORDSERV.DATPRO, MIN(ORDXFUN.DATHORINI)) || ':' ||(CAST(MOD (datediff (minute, ORDSERV.DATPRO, MIN(ORDXFUN.DATHORINI)),60)as DECIMAL ))

Resultado:

2:0

Alex Lekao
   - 10 set 2015

Rapaz, ai ferrou. rsrsr

nao to conseguindo pensar em nada no momento. rsrsr

Faabiianooc
   - 10 set 2015

Veja se isso funciona.

#Código

SELECT 
EXTRACT(HOUR FROM CAST(CAST(ORDSERV.DATPRO AS FLOAT) - CAST(ORDSERV.DATHORINI AS FLOAT) AS DATETIME)),
EXTRACT(MINUTE FROM CAST(CAST(ORDSERV.DATPRO AS FLOAT) - CAST(ORDSERV.DATHORINI AS FLOAT) AS DATETIME)),
EXTRACT(SECOND FROM CAST(CAST(ORDSERV.DATPRO AS FLOAT) - CAST(ORDSERV.DATHORINI AS FLOAT) AS DATETIME))


Estou calculando a difereça entre DATPRO - DATHORINI, ajuste conforme sua necessidade. ;)