Olá estou com um problema que está dificil de atropela-lo:
Eu uso o Eclipse + JavaBeans + BD-Oracle
Eu tenho 2 campos Date em uma tabela Oracle (leo_dtturno & leo_dtreal) então criei um vetor e no momento de jogar as variáveis formatadas para o vetor da erro(Type mismatch: cannot convert from String to Date)
Um campo eu jogo o Formato (DD/MM/YYYY) outro campo eu jogo (dd/MM/yyyy HH:mm:ss)
Segue…
public Vector e tal..............
try {
Connection conexao = DriverManager.getConnection..........etc
PreparedStatement sql = conexao.prepareStatement("SELECT leo_dtturno,leo_hrturno,leo_dtreal FROM leo_una_turno" +
" order by leo_dtturno desc, leo_hrturno desc");
ResultSet rs=sql.executeQuery();
SimpleDateFormat formatador = new SimpleDateFormat("dd/MM/yyyy");
SimpleDateFormat formatador2 = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss");
while (rs.next()){
Turno trn = new Turno ();
Date dtgenerico = new Date();
Date dtgenerico2 = new Date();
dtgenerico = rs.getDate("leo_dtturno");
String strDataTurno = formatador.format(dtgenerico);
dtgenerico2 = rs.getTimestamp("leo_dtreal");/////JÁ USEI TODOS OS GETS E NÃO ADIANTOU....
String strDataReal = formatador2.format(dtgenerico2);
trn.leo_dtturno = strDataTurno;
trn.leo_hrturno = rs.getString("leo_hrturno");
trn.leo_dtreal = strDataTurno;///////AQUI 'DA O ERRO
a.add(trn);
}
rs.close();
conexao.close();
Galera dificil de entender porq com um está Ok e com o outro não pois os 2 campos na tabela são DATETME no Oracle
Cara só uma observação o campo no seu banco tem que estar com o mesmo tipo, ou seja, preste atenção se vc num tá querendo formatar date campo que é timestamp ou vice-versa.
Eai cara… Cara sinceramente caso vc não consiga resolver este problema faz o seguinte traz as datas formatadas no proprio select. Trazendo as datas formatadas no proprio select vc evitaria consumo de memoria e ainda por cime teria menos problemas no seu codigo.
Exemplo:
SELECT TO_CHAR(leo_dtturno, ‘DD/MM/YYYY’) AS LEO_DTTURNO,
TO_CHAR(leo_dtreal, ‘DD/MM/YYYY HH24:MI:SS’) AS LEO_DTREAL
FROM TABELA
Trazendo assim sempre estes campo virão com as datas no formato que vc deseja…
jimjr_ivan
Os dois campos são DateTime no Oracle só q um
e somente gravado a data e o Oracle deixa na boa e no vetor eu consigo trazer
o outro campo também é datetime só que está com a hora e em outras consultas eu consigo formatar usando o gettTimeStamp e a consulta vem DD/MM/YYYY hh:mm… isso q não entendi
Ow tbm vc poderia fazer algo to tipo como criar um get e set para os seus respectivos campos(leo_dtturno & leo_dtreal) e fazer assim:
[code]/Converte data String para Date no formato brasileiro “dd/MM/yyyy”/
public String getLeoDtTurnoJDBC() {
try {
SimpleDateFormat format = new SimpleDateFormat(“dd/MM/yyyy”);
SimpleDateFormat formatjdbc = new SimpleDateFormat(“yyyy-MM-dd”);
return formatjdbc.format(format.parse(leoDtTurno));
} catch (Exception e) {
e.printStackTrace();
return "";
}
}
public void setLeoDtTurno(String leoDtTurno) {
this.leoDtTurno = leoDtTurno;
}
public void setLeoDtTurnoJDBC(String leoDtTurno) {
try {
SimpleDateFormat formatjdbc = new SimpleDateFormat("yyyy-mm-dd");
SimpleDateFormat format = new SimpleDateFormat("dd/MM/yyyy");
this.leoDtTurno = format.format(formatjdbc.parse(leoDtTurno));
} catch (Exception e) {
e.printStackTrace();
}
}
//ai para outro bean(leo_dtreal) vc faz a mesma coisa passando o formato q vc quer “dd/MM/yyyy HH:mm:ss)”, //ou vice-versa, sei lah.
[/code]
Boa sorte At+!
Pessoal,
Obrigado pelas Dicas eu resolvi meu problema.
Estava na formatação (dd/MM/yyyy HH:mm:ss) mudei o HH para minusculo.
eBarros :lol:: Eu ja havia criado os gets e sets paraos campos…Obrigado
tlink.k :lol:: Obrigado pela dica. Mais uma que poderei futuramente utilizar.
Schumacher: Eu já tentei usar no comando sql (TO_char) e me truxe o ano ‘0007’
Pedrosa :lol:: Eu fiz da maneira que vc me passou e o compilador me sugeriu q criasse como string também (veja abaixo) lembrando q antes de postar aqui eu havia criado os gets e sets dos campo entao eu criei com outro nome.
private Date setLeo_dtreal_timestamp(String string) {
// TODO Auto-generated method stub //<--------- (este comentário foi o Eclipse quem colocou)
return null;
}
public Timestamp getLeo_dtreal_timestamp() {
return leo_dtreal_timestamp;
}
public void setLeo_dtreal_timestamp(Timestamp leo_dtreal_timestamp) {
this.leo_dtreal_timestamp = leo_dtreal_timestamp;
}
Schumaker :lol:: consegui compilar e testei mas trouxe o campo ‘nulo’ no lugar da formatacao.
Mas mesmo assim Obrigado pela dica pois vai ser util para outros métodos.
Obrigado pessoal…é uma satisfação sempre bom contar com o GUJ