E ai Galeraa…
Estou com um probleminha aqui…espero que possam ajudar…
Tenho um campo com o formato “####/####”.
Quando tento gravar ele no Banco de dados, ele divide os 4 primeiros digitos, pelos 4 ultimos. O banco esta interpretando o caracter “/” como divisão. O campo é chave primária. Eu ja mudei o tipo do campo prara todos os possíveis. O estranho é que eu tenho outro campo do tipo ##/##/#### para data, e ele grava normalmente.
Estou usando o MySql.
Valeu…
Campo Formatado
3 Respostas
Ola Jean,
Esse problema eh bastante comum… mas antes de vc ficar na tentativa e erro ate descobrir como funciona a data no MySql a solucao eh utilizar o drive jdbc… assim naum importa qual banco vc esteja programando o jeito de manipular data eh um soh.
Antes de tudo temos que utlizar o PreparedStatement
Connection conexao = <obtem conexao com o banco>;
String query = "INSERT INTO Feriado (nome_feriado, data_feriado) VALUES (?, ?)";
java.util.Date dataFeriado = <qualquer data>;
PreparedStatement pstmt = conexao.prepareStatement( query );
pstmt.setString(1, "JavaDay");
pstmt.setDate(2, new java.sql.Date( dataFeriado.getTime() ) );
pstmt.executeUpdate();
Pronto. Vc deixou todo o trabalho pro jdbc ao inserir no banco (naum importa que seja MySql, SqlServer, Oracle). Para mostrar as consultas vc pode utilizar o SimpleDateFormat.
AlcidesFlach
Valeu pela ajuda, mas o que eu quero não é resolver o problema da data, mas sim o problema de o banco de dados interpretar a / do meu campo como sendo divisão. onde eu quero colocar por exemplo “1000/2000” ele grava 0.5, ou seja, a divisão de 2000 por 1000.
se esse campo for string, verifiquei se vc esta passando ele entre aspas simples.
ex:
"insert into pessoa (nome) values(' "+nome+" ' )";
é pra dar certo assim…