JAVA converter data Timestamp

datetime

Tenta assim:

Timestamp timestampIN = resultSet.getTimestamp("CADASTRAMENTO");
mod.setDataIN(new java.util.Date(timestampIN.getTime()));


dessa forma?

Não mande a imagem do código. Copie e cole o código para facilitar.

Quando estiver dando algum erro, diga qual foi. Não dá para saber exatamente o problema soh com a imagem.

De qual pacote é essa classe Timestamp que vc está usando?

putz…Desculpa man. sou novo nisso…rsrs.

A

1 curtida

Tranquilo. Digo msm para já ir acostumando e agilizando para os dois lados (o seu e das pessoas que podem te ajudar).

Mas então, essa classe que tu usou Timestamp, é do pacote java.sql? E onde vc declarou esse resultSet? Não deveria ser conex.rs.getTimestamp ?

Lucas eu consegui trazer na tela a data convertida, mas nao consigo fazer o filtro das datas. Vc tem uma ideia de como posso fazer?

Ja tentei:

PreparedStatement pst = conex.con.prepareStatement("select FILIAL,CLIENTE_VAREJO,CPF_CGC,DDD,TELEFONE,DDD_CELULAR,CELULAR,email,convert(varchar(10),cadastramento,103) as 'CADASTRAMENTO'from CLIENTES_VAREJO where FILIAL like '%"+mod.getPesquisa()+"%' and cadastramento ? and ?");

“?” and “?”

O sql parece que está errado nessa parte:

and cadastramento ? and ?

Acho que faltou o between:

AND cadastramento BETWEEN ? AND ?

coloquei o sql dessa forma
select FILIAL,CLIENTE_VAREJO,CPF_CGC,DDD,TELEFONE,DDD_CELULAR,CELULAR,email,convert(varchar(10),cadastramento,103) as 'CADASTRAMENTO’from CLIENTES_VAREJO where FILIAL like ‘%"+mod.getPesquisa()+"%’ and cadastramento between ? and ?

ele retornou
Unexpected parameter marker at position 206

Vc setou os parâmetros no PreparedStatement? Ex.:

PreparedStatement pst = // aqui é criado o prepared statement
pst.setDate(1, <<data início vem aqui>>);
pst.setDate(2, <<data final vem aqui>>);

bom dia, sim .

mas Lucas tem algo errado…kkkk seu deixar so o campo de filial no sql ele me traz a data ja convertida na data que preciso.
mas quando tento trazer mais o campo de data ele diz que não consegue converter
oque acha que pode ser;

Não entendi. Vc diz:

E depois

Como assim, trazer mais? Pelo que vi, o select eh o mesmo, com diferença apenas no where.

o filtro que faço é no select ceto? exemplo:

("select FILIAL,CLIENTE_VAREJO,CPF_CGC,DDD,TELEFONE,DDD_CELULAR,CELULAR,email,convert(varchar(10),cadastramento,103) as 'CADASTRAMENTO'from CLIENTES_VAREJO where FILIAL like '%"+mod.getPesquisa()+"%'");

agora se eu adicionar mais campos que seria a data ele reclama de conversão. EX:

("select FILIAL,CLIENTE_VAREJO,CPF_CGC,DDD,TELEFONE,DDD_CELULAR,CELULAR,email,convert(varchar(10),cadastramento,103) as 'CADASTRAMENTO'from CLIENTES_VAREJO where FILIAL like '%"+mod.getPesquisa()+"%' and cadastramento between '?' and '?'");

eu posso te mandar o print pra ficar so mais fácil de explicar?

Ah mano, agora que reparei nesse convert que tu faz:

convert(varchar(10),cadastramento,103)

Não precisa disso não. O correto é retornar a data na forma como ela é armazenada, com isso, ao converter para um objeto Date no java, deve funcionar.

E vc está usando os parâmetros do preparedStatement errado. Não precisa dessas aspas nas interrogações do between. A ideia dessas interrogaações na sua consulta é para evitar fazer concatenações da forma como vc está fazendo. Mude sua consulta para ficar assim:

String query = "SELECT FILIAL, CLIENTE_VAREJO, CPF_CGC, DDD, TELEFONE, DDD_CELULAR, CELULAR, email, cadastramento from CLIENTES_VAREJO where FILIAL like ? and cadastramento between ? and ?";

Viu como fica mais limpo. Bem melhor do que usar concatenação. E para setar os parâmetros, basta fazer isso:

PreparedStatement pst = connection.prepareStatement(query);
pst.setString(1, "%" + mod.getPesquisa() + "%");
pst.setDate(2, <<data início vem aqui como java.sql.Date>>);
pst.setDate(3, <<data final vem aqui como java.sql.Date>>);

select FILIAL,CLIENTE_VAREJO,CPF_CGC,DDD,TELEFONE,DDD_CELULAR,CELULAR,email,convert(varchar(10),cadastramento,103) as 'CADASTRAMENTO’from CLIENTES_VAREJO where FILIAL like ‘%"+mod.getPesquisa()+"%’");

estou usando esse comando no sql ai a data esta convertida no campo cadastro certo?

Entendi, mas o certo é recuperar a data do jeito que está no banco e depois formatar no código java para o formato que tu precisar.