Date data = 2010-07-26;
String gravaId = "update TABELA set id = ? where data = ' "+data + " ' ";
ps = con.prepareStatement(gravaId);
ps.setInt(1, rs.getInt("id")) ;
ps.executeUpdate();
O Banco é SQL server 2000, e esta coluna é tipo datetime, ele trás vazio, pois no banco esta gravado com hora também...
Datedata=2010-07-26;StringgravaId="update TABELA set id = ? where data = ?";ps=con.prepareStatement(gravaId);ps.setInt(1,rs.getInt("id"));ps.setDate(2,data);ps.executeUpdate();
Evite concatenar coisas com + quando estiver fazendo SQLs.
ViniGodoy
O que exatamente você quer fazer com o seu where?
Alterar o id de todos que forem do mesmo dia? E se tiver 2 em horas diferentes?
Uma alternativa é sempre gravar datas (se a hora não for relevante) com o mesmo horário. Isso facilita muito as comparações.
Se você manipula muito datas, recomendo fortemente que use essa biblioteca no lugar do DateTime e do Calendar do Java.
ps.vale
Obrigada ViniGodoy, isso eu já havia tentado, e também não funcionou. Pois no banco estão gravados os dados de hora também, então ele não encontra pois esta apenas o dia, e não dia e hora.
No caso, estou migrando os dados de um banco para o outro, e quero inserir qual é o id do dado no novo banco de dados. Então, insiro o dado, e coloco o novo id, em uma coluna id migração, para ter o controle de qual dados foi para onde.
ViniGodoy
Então nesse caso você terá que fazer um intervalo de datas.
Datedata1="2010-07-26"; Datedata2="2010-07-27"; StringgravaId="update TABELA set id = ? where data >= ? AND data < data2"; ps=con.prepareStatement(gravaId); ps.setInt(1,rs.getInt("id")); ps.setDate(2,data1); ps.setDate(3,data2);
Assim ele considera qualquer data gravada naquele dia, independente da hora. Aproveite que está migrando e no novo banco, grave num horário padrão só. Se o horário não é relevante, não tem pq grava-lo.
ps.vale
Funcionou, muito obrigada, era isso mesmo!
Estou limpando as datas sim, não tem relevância nenhuma no negócio.