Select com Datetime(Resolvido)

[code]
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();[/code]

O Banco é SQL server 2000, e esta coluna é tipo datetime, ele trás vazio, pois no banco esta gravado com hora também…

como faço para comparar DateTime???
Obrigada

[code]Date data = 2010-07-26;

String gravaId = “update TABELA set id = ? where data = ?”;
ps = con.prepareStatement(gravaId);
ps.setInt(1, rs.getInt(“id”)) ;
ps.setDate(2, data);
ps.executeUpdate();[/code]

Evite concatenar coisas com + quando estiver fazendo SQLs.

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.

É a alternativa usada pelo Joda-Time:
http://joda-time.sourceforge.net/

Se você manipula muito datas, recomendo fortemente que use essa biblioteca no lugar do DateTime e do Calendar do Java.

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.

Então nesse caso você terá que fazer um intervalo de datas.

[code]Date data1 = “2010-07-26”;
Date data2 = “2010-07-27”;

String gravaId = “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); [/code]

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.

Funcionou, muito obrigada, era isso mesmo!
Estou limpando as datas sim, não tem relevância nenhuma no negócio.