Tratar horas como Integer. Alguém teve essa experiência?
Bom dia, estou trabalhando em um modulo de ficha-ponto
e me deram a sugestão de tratar as horas como integer no banco,
o que facilitaria nos cálculos.
Alguém trabalha dessa maneira? Não pode trazer algum problema no futuro?
Gostaria da opinião dos colegas antes de começar a implementação.
Abraços,
Julian.
e me deram a sugestão de tratar as horas como integer no banco,
o que facilitaria nos cálculos.
Alguém trabalha dessa maneira? Não pode trazer algum problema no futuro?
Gostaria da opinião dos colegas antes de começar a implementação.
Abraços,
Julian.
Julian Luis
Curtidas 0
Respostas
Bruno Leandro
28/09/2012
Qual banco de dados voce utiliza
GOSTEI 0
Julian Luis
28/09/2012
Firebird 2.1
GOSTEI 0
Leonardo Xavier
28/09/2012
Qual tipo de banco de dados você vai utilizar?
Qual é o formato das horas em numerais çque você irá gravar no banco? Ex. 2,5h | 4h | 3.6h.
Qual é o formato das horas em numerais çque você irá gravar no banco? Ex. 2,5h | 4h | 3.6h.
GOSTEI 0
Julian Luis
28/09/2012
Utilizo firebird, usaria da seguinte forma:
10:53 salvaria como 1053
23:59 || 2359
14:00 || 1400
10:53 salvaria como 1053
23:59 || 2359
14:00 || 1400
GOSTEI 0
Leonardo Xavier
28/09/2012
Sinceramente grave como varchar, ou text...é mais facil de não se perder com a formatação exata da hora 10':'04 acho mais facil tratar dados string do que integer, integer seria mais facil de somar e tals mas o controle terá que ser muito bem feito, e se der algum erro no seu calculo você vai ter dores de cabeça para resolver depois ou achar onde esta o "furo" e vai ser debug pra tudo quanto e lado, eu faria com campo string e trataria ele no código...Mas veja como fica melhor para você tratar este tipo de dado.
Mas cada programador tem um jeito diferente de lidar com os dados, você tem que ver um jeito que fique facil para você tratar os dados. Pra mim funciona tratando horas como string..mas talvez pra vc seja melhor tratar horas como integer, é relativo.
Mas cada programador tem um jeito diferente de lidar com os dados, você tem que ver um jeito que fique facil para você tratar os dados. Pra mim funciona tratando horas como string..mas talvez pra vc seja melhor tratar horas como integer, é relativo.
GOSTEI 0
Leonardo Xavier
28/09/2012
Sinceramente grave como varchar, ou text...é mais facil de não se perder com a formatação exata da hora 10':'04 acho mais facil tratar dados string do que integer, integer seria mais facil de somar e tals mas o controle terá que ser muito bem feito, e se der algum erro no seu calculo você vai ter dores de cabeça para resolver depois ou achar onde esta o "furo" e vai ser debug pra tudo quanto e lado, eu faria com campo string e trataria ele no código...Mas veja como fica melhor para você tratar este tipo de dado.
Mas cada programador tem um jeito diferente de lidar com os dados, você tem que ver um jeito que fique facil para você tratar os dados. Pra mim funciona tratando horas como string..mas talvez pra vc seja melhor tratar horas como integer, é relativo.
Mas cada programador tem um jeito diferente de lidar com os dados, você tem que ver um jeito que fique facil para você tratar os dados. Pra mim funciona tratando horas como string..mas talvez pra vc seja melhor tratar horas como integer, é relativo.
Esqueci de mencionar,...Teve uma rotina que eu fiz assim...
Antes de salvar você pode converter suas horas em minutos e somar ao resultado os minutos da hora ai ficaria mais facil tratar este tipo de dado.
Exemplo .
1h e 30 minutos
60 minutos
+
30 minutos
=
90 minutos= 90 gravado no banco.
GOSTEI 0
Bruno Leandro
28/09/2012
a partir da versao 2.1 existe a função DATEDIFF pra voce pegar a diferença entre duas datas exemplo
o cara entrou as 8:00 e saiu as 18:00
select datediff (hours, datahora_saida, datahora_entrada)
com esse comando voce pega as horas de diferença
o cara entrou as 8:00 e saiu as 18:00
select datediff (hours, datahora_saida, datahora_entrada)
com esse comando voce pega as horas de diferença
GOSTEI 0
Julian Luis
28/09/2012
Leonardo, parece interessante trabalhar como string, vou fazer uns testes aqui.
Valeu pela resposta
Bruno, essa função é útil porém a ordem é não trabalhar com tipo Time hehe.
Mas valeu pela ajuda
Valeu pela resposta
Bruno, essa função é útil porém a ordem é não trabalhar com tipo Time hehe.
Mas valeu pela ajuda
GOSTEI 0