Formatação de data

6 respostas
S

Pessoal…

Preciso fazer uma consulta SQL no DB DB2.
Tenho uma String que recupera a data da session.
Ela deve vir no formato: 20050118221100
O campo da tabela é do tipo TimeStamp.
Não estou conseguindo fazer essa consulta…
A informação nesse campo pelo que verifiquei tem o seguinte formato:
yyyy-MM-dd hh:mm:ss (e mais os milisegundos).
Estou tentando converter a String passada para Date nesse formato, mas até agora sem sucesso…

Alguém pode ajudar?

Valeu

Abs.

6 Respostas

D

use a classe SimpleDateFormat do pacote java.text. Eh simples, aqui vai um exemplos:

SimpleDateFormat sdf = new SimpleDateFormat(“yyyy-MM-dd hh:mm:ss”);
String s = sdf.format(new Date()).

S

Já usei essa classe…
Ela formata certinho no padrão, mas na hora de jogar no PrepareStatement, ele dá erro.
Verifiquei que, usando SimpleDateFormat , ele usa a classe java.util.Date
No PrepareStatement, o método setDate usa java.sql.Date.
Fiz um cast, mas não funciona.

Alguém pode ajudar?

Valeu pela força

D

voce pode utlizar sim essa classe SimpleDateFormat

ai no PreparedStatement voce utiliza:

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss"); String s = sdf.format(new Date()); ps.setString(2,str_data);

S

Pode me explicar melhor esse código?

D

eh bem simples:

  • primeiro eu gero uma String no formato com a data de hoje:

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss"); String strData = sdf.format(new Date());

  • depois eu utilizo essa String como valor para um parametro do PreparedStatement
J

bom… as vezes vc precisa usar funções do seu banco na própria SQL…

no Oracle seria algo como:
toDate(?,dd-MM-yyyy)… alguma coisa assim…

dai é só ver no seu banco…
por exemplo a Oracle, só garante que uma data é valida se for convertida desta maneira…

Abraços!

Criado 18 de janeiro de 2005
Ultima resposta 19 de jan. de 2005
Respostas 6
Participantes 4