[RESOLVIDO] Dúvida armazenar horas no banco de dados Postgresql

Olá a todos.

Estou com um projeto de software aqui na empresa, onde vou controlar as horas trabalhadas de cada profissional. Porém me foi solicitado que cada profissional tenha um número X de horas atribuído a ele, que conforme ele vá registrando horas trabalhadas, esse número vá sendo subtraído. Como se fosse comprado um número X de horas de determinado profissional, e conforme ele vai executando tarefas esse numero vai diminuindo, e caso necessário seja adquirido mais horas, no caso extras.

Estou utilizando java, hibernate e o banco de dados postgresql. A minha dúvida é, qual a melhor maneira de armazenar essas horas do profissional no banco ? Eu pesquisei bastante sobre, mas ainda não consegui definir certo a melhor maneira. Pensei em utilizar o tipo INTERVAL, pois dai consigo armazenar por exemplo 200 horas, que eu consideraria mensais. Mas não sei certo se entendi o funcionamento do tipo interval.

A minha preocupação é conseguir fazer os cálculos mais tarde com essas horas.

Desde já agradeço.

No caso como utilizará saldos de horas, armazene como numeric mesmo, sem muita complicação.

Ou em algum momento você vai precisar exibir essas informações no formato de hora (hh : mm)?

Então…quando o administrador for consultar os profissionais, vai ser necessário apresentar a quantidade de horas disponíveis para cara profissional, e isso vai ser em HH:mm.
Além do que, futuramente vou calcular o intervalo de horas entre o ponto de início e o ponto de fim do trabalho de cada profissional, e subtrair desse valor na tabela do profissional. Não sei se consegui ser claro.

Mas realmente eu pensei em usar numeric mesmo, até por que tenho o valor da hora contratada também, e assim seria mais fácil fazer a multiplicação, imagino.

Pelo que você me disse imagino que seria mais ou menos a mesma ideia de um ponto eletrônico.

Nesse caso não vejo problema em armazenar os saldos como numeric, o ponto mais complexo no desenvolvimento seria somente a conversão disso em hh : mm para exibição.

Eu discordo.
Salva como TIME mesmo.
Veja

Mas caso eu salve como TIME, consigo salvar um valor acima de 23:59:59 ?

Por exemplo, se o usuário resolver ( e ele vai ) armazenar 200 horas para um profissional. Como o banco iria se portar ?

Eu iria normalizar para minutos pr exemplo e armazenar no banco em numerico. Até pra evitar a treta do time q n vai passar de 23.

@darlan_machado eu havia sugerido numeric pensando nessa situação.

Depois que eu li com calma eu percebi.
Então, se o funcionário larga com 200 horas, lança como numeric mesmo (vai que um deles precisa começar com 190,5).

Exatamente!

Pois então, depois de pensar bem sobre o que vocês me disseram, realmente acho que eu estava complicando algo que de certa forma é simples. Na verdade eu só vou precisar realizar alguns cálculos e conversões mais a frente talvez, porém da forma numeric vai funcionar tudo.

Bom, obrigado pela ajuda de todos.
abraço

Só aproveitando a questão, quanto ao valor da hora, é melhor armazenar como decimal ou numeric ? Atualmente estou utilizando decimal.

Eu costumo trabalhar com numeric, mas os dois tipos atendem!

Certo.

Mais uma vez obrigado.