Então eu preciso guardar em uma coluna do banco de dados a hora inicial e final de operação de uma comércio. Apenas a hora, não preciso da data.
Ex.: O comércio do João abre às 08h e fecha às 18h.
Atualmente estou usando o formato TIMESTAMP no banco de dados, mas não acho a melhor solução, pois preciso ficar fazendo tratativa de apenas pegar a hora no Java o que é trabalhoso, além disso na hora de guardar a hora no banco preciso colocar uma data fictícia, algo desnecessário, apenas para contemplar o contrato de sintaxe do tipo TIMESTAMP.
Beleza na hora de buscar a informação no banco da para fazer a tratativa, mas e na hora de salvar no banco de dados a hora ? Vou ter mesmo que colocar uma hora ficticia ou posso colocar os dias,meses e anos como 0 - 00/00/0000 ? Na sua opinião, qual seria a melhor a solução ?
SELECT TO_CHAR(SYSDATE, 'HH24:MI:SS') AS HORA FROM DUAL; //Vai me retornar somente a hora em String
Eu tenho adotado como boa prática armazenar a data corrente juntamente com o horário, até porque o banco não permite armazenar uma data inexistente como por exemplo: 00/00/0000.
private String getDateTime() {
DateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss");
Date date = new Date();
return dateFormat.format(date);
}
Então as duas soluções são boas inclusive o meu código estava no formato do Jonathan, eu só não queria ficar fazendo várias conversões no java e gravando hora ficticia. Até pke para ficar fazendo calculo de horas eu precisava converter em alguns casos o formato string para long.
Acabei usando a solução do pfk66, achei bem simples, gravo tudo em minutos no banco usando o tipo de coluna NUMBER(4,0) e na hora de jogar para a tela eu faço a conversão para horas e vice-versa.
Galera muito obrigado pelas dicas, trabalhar com data e hora as vezes é um problema. Valeu !