Tempo e Dinheiro (no PostgreSQL!)

0 respostas
FredMP

Bom dia a todos! Estou com algumas dúvidas acerca do uso do java com o banco postgres e ficarei agradecido se alguém puder dar alguma dica, lá vai:

1- Estou usando o tipo BigDecimal pra trabalhar com valores monetários e no banco estou usando um campo numeric do postgres. Tentei usar o campo money (que me parece o ideal) com o BigDecimal mas não funcionou. Gostaria de saber a forma como vcs trabalham com valores monetários com postgres e java.

2- Quando salvo um tipo java.sql.Date em um campo date do banco e um tipo java.sql.Time em um campo time do banco, tudo funciona bem. Porém, estranhamente, quando ao mesmo tempo, salvo um java.sql.Timestamp em um campo timestamp do banco, o horário de verão não é computado e aparece com uma hora a menos! Pensei em usar o TimeStamp apenas, no lugar de salvar um Date e um Time, pois ficaria mais simples e menos suscetível a erros na hora de recuperar. Mas com esse problema do horário de verão fiquei na dúvida sobre a melhor maneira de tratar datas e horários.

Obs.: a data é passada ao java.sql.Time, ao java.sql.Date e ao java.sql.Timestamp através de um Calendar:

Calendar cal = Calendar.getInstance(); pstmt.setTime(1, new java.sql.Time(cal.getTimeInMillis())); pstmt.setDate(2, new java.sql.Date(cal.getTimeInMillis())); pstmt.setTimestamp(3, new java.sql.Timestamp(cal.getTimeInMillis()));

O que acontece é que eu tô desenvolvendo um sistema para hotéis que vai fazer muito uso de datas e valores monetários e eu queria saber a melhor maneira de trabalhar com esses campos, principalmente datas. Afinal, posso deixar os campos de data como String, Date ou Calendar. Não estou muito convicto sobre qual abordagem é a melhor.

att,
Fred

Criado 9 de janeiro de 2007
Respostas 0
Participantes 1