Problemas com gravação de Data/Hora no banco

5 respostas
PBNETO

Bom dia amigos!

Tô aqui com uma situação intrigante… Vejam só:
Eu estou recebendo uma data/hora do tipo “java.util.Date” e formatando/convertendo ela pra String…

Depois lá em baixo, adiciono esta String como parâmetro para um INSERT no banco…
O problema: Está gravando apenas a Data no banco!! E eu preciso que grave a Hora tbm!!

// Formatação
                SimpleDateFormat formatador = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

                // Parâmetros (facdb.getDataPostagem e facdb.getDataSistema retornam um java.util.Date)
                String testeP = formatador.format(facdb.getDataPostagem());
                String testeS = formatador.format(facdb.getDataSistema());                
                
        		sentenca = conexao.prepareStatement("insert into dbo." + Tabela
        										  + " values"
        										  + " (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)");
                        //...
        		sentenca.setString( 9, testeP);
        		sentenca.setString(11, testeS);
                        //...

Será que terei que trabalhar com java.sql.Date? Alguém pode me ajudar?
Muito obrigado!!

5 Respostas

bueno

porque vc não tenta :

sentenca.setDate( 9, new java.sql.Date(facdb.getDataPostagem().getTime()) );

?

H

Eu tive que usar o java.sql.Date mesmo,
mas você pode fazer o seguinte:

java.sql.Date data = new java.sql.Date(facdb.getDataPostagem().getTime());
.....
.....
sentenca.setDate(9, data);

abraços

PBNETO

Então bueno e hugoleo1…

Esta eu acho que seria a solução mais correta mesmo!!
Mas tbm acontece o lance da perda da Hora… Por isso até tentei passar pra String…

O facdb.getDataPostagem() retorna o horário normalmente…
Porém após a conversão para java.sql.Date ou String, ele tá perdendo o Horário…

Vcs teriam mais idéias?

von.juliano

Utilize a classe Timestamp.

Blz? Flw! :thumbup:

PBNETO

Na moscaa velho!!
O Timestamp armazena tanto a Data quanto a Hora!!
Ficou assim:

sentenca.setTimestamp( 9, new java.sql.Timestamp(facdb.getDataPostagem().getTime()));
sentenca.setTimestamp(11, new java.sql.Timestamp(facdb.getDataSistema().getTime()));

Muitoo obrigado!!

Criado 3 de julho de 2008
Ultima resposta 3 de jul. de 2008
Respostas 5
Participantes 4