Usuário com melhor resposta
hora como int ?

Pergunta
-
To fazendo algumas pesquisas e estudos com bancos de dados de vários sistemas e me deparei com o banco que o campo hora esta no formato int, salvei 08:00 olho no banco de dados ele me mostra 28800
alguém sabe como converter pra hora novamente 28800 ?
Atenciosamente,
José Henrique Sabino
Respostas
-
Olá José Sabino,
Ele grava assim pois ele converte tudo em segundos.
Então:
28800 / 60 = 480 minutos
480 / 60 = 8 horas
Obviamente fiz dois cálculos apenas para entender o que está acontecendo.
Aqui tem uma função para retornar a hora formatada "HH:mm:ss". Segue: http://forum.imasters.com.br/topic/533265-converter-minutos-em-horas-e-minutos/
Se a resposta for relevante ou tenha resolvido seu problema, marque como útil/resposta!
André Secco
Microsoft MSP & MSDN Tech Advisor
Blog: http://andresecco.com.br
GitHub: http://github.com/andreluizsecco
Twitter: @andre_secco- Editado André SeccoMVP segunda-feira, 21 de novembro de 2016 16:56
- Marcado como Resposta Xarp2 segunda-feira, 21 de novembro de 2016 17:21
Todas as Respostas
-
-
Olá José Sabino,
Ele grava assim pois ele converte tudo em segundos.
Então:
28800 / 60 = 480 minutos
480 / 60 = 8 horas
Obviamente fiz dois cálculos apenas para entender o que está acontecendo.
Aqui tem uma função para retornar a hora formatada "HH:mm:ss". Segue: http://forum.imasters.com.br/topic/533265-converter-minutos-em-horas-e-minutos/
Se a resposta for relevante ou tenha resolvido seu problema, marque como útil/resposta!
André Secco
Microsoft MSP & MSDN Tech Advisor
Blog: http://andresecco.com.br
GitHub: http://github.com/andreluizsecco
Twitter: @andre_secco- Editado André SeccoMVP segunda-feira, 21 de novembro de 2016 16:56
- Marcado como Resposta Xarp2 segunda-feira, 21 de novembro de 2016 17:21
-
José Sabino,
Existe no SQL Server um recurso chamado Time Expression FN que nos permite justamente definir expressões de tempo para serem aplicados a cálculo de horas, veja se o exemplo abaixo ajuda:
Create Table #s(Start Datetime, [end] Datetime) Insert Into #s Select Cast('2010-04-08 12:00:00' As datetime),Cast('2010-04-08 14:10:00' As datetime) Union All Select Cast('2010-04-08 13:00:00' As datetime),Cast('2010-04-08 14:00:00' As datetime) Union All Select Cast('2010-04-08 15:45:00' As datetime),Cast('2010-04-08 16:00:00' As datetime) Union All Select Cast('2010-04-08 15:00:00' As datetime),Cast('2010-04-08 18:00:00' As datetime) Select Round(Cast(Sum(({fn Hour([end])}-{fn Hour(start)})) As decimal(4,2)) + Cast(Sum({fn Minute([end])} - {fn Minute( start)}) As decimal(4,2))/60,4) As 'Total Hrs' From #s Select {fn Hour([end])}+{fn Hour(GetDate())}, {fn Minute([end])}, {fn Second([end])} from #S
Pedro Antonio Galvao Junior [MVP | MCC | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | Professor Universitario | SoroCodigos | @JuniorGalvaoMVP | http://pedrogalvaojunior.wordpress.com]