Arrendondar casas decimais em Datas

SQL Server

Firebird

08/09/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
João Cristo

João Cristo

Curtidas 0

Melhor post

Fabiano Carvalho

Fabiano Carvalho

09/09/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

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

Mais Respostas

João Cristo

João Cristo

08/09/2015

Obrigado pelo retorno, infelizmente o banco é o Firebird.
GOSTEI 0
Alex Lekao

Alex Lekao

08/09/2015

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

Cast - Firebird
GOSTEI 0
João Cristo

João Cristo

08/09/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
GOSTEI 0
Alex Lekao

Alex Lekao

08/09/2015

Rapaz, ai ferrou. rsrsr

nao to conseguindo pensar em nada no momento. rsrsr
GOSTEI 0
Fabiano Carvalho

Fabiano Carvalho

08/09/2015

Veja se isso funciona.

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. ;)
GOSTEI 1
POSTAR