Data e MySQL

5 respostas
warley

E aí pessoal, blz?

Seguinte, eu estou começando em MySQL e estou com um problema em recuperar o valor de uma data do bando de dados do MySQL.

Vejam a minha tabela:

CREATE TABLE `informativo` (
  `codigo` int(11) NOT NULL auto_increment,
  `titulo` varchar(100) default NULL,
  `data` datetime default NULL,
  `descricao` text,
  PRIMARY KEY  (`codigo`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

Meu Código:

try {
   Class.forName("com.mysql.jdbc.Driver");
			
   System.out.println("Foi 1");
			
			
  Connection con = DriverManager.getConnection ("jdbc:mysql://localhost:8181/jusmar","root","12qwaszx");
			
  String query = "select * from informativo ";
			
  Statement stmt = con.createStatement();
			
   ResultSet rs = stmt.executeQuery(query);
			
  while(rs.next()){
				
    System.out.println("Campo Código: "+ rs.getString("codigo"));
    System.out.println("Campo Título: "+ rs.getString("titulo"));
    System.out.println("Campo Data: "+ rs.getTimestamp("data"));
				
  }

} catch (ClassNotFoundException e) {
   System.out.println("O driver expecificado não foi encontrado."); 
}
catch (SQLException e1) {
      e1.printStackTrace();
}
ERRO:
Cannot convert value '0000-00-00 00:00:00' from column 3 to TIMESTAMP.

Eu já tentei usar rs.getString e rs.getDate mas tb não funciou!!!

Eu consigou inserir dados na tela, mas não consigo recuperar!!! Fogo!!

Alguêm sabe o pq deste erro?

Obrigado!

5 Respostas

Rafael_Steil

Adicione o seguinte na sua String de conexao:

zeroDateTimeBehavior=convertToNull

ou seja, vai ficar como

jdbc:mysql://localhost:8181/jusmar?zeroDateTimeBehavior=convertToNull

Rafael

warley

Valeu Rafael!!!

Funcinou!!! :wink:

kartler

Rafael Steil:
Adicione o seguinte na sua String de conexao:

zeroDateTimeBehavior=convertToNull

ou seja, vai ficar como

jdbc:mysql://localhost:8181/jusmar?zeroDateTimeBehavior=convertToNull

Rafael

Muito legal isso ai Rafael, e aproveitando o embalo, tem como passar na URL de conexão com o banco, algo para mudar o tipo de retorno de data ?ex: dd/mm/aaaa

se tiver isso será uma mão na roda, pois evita ter que formatar a saida da data no MySQL que geralmente vem mm/dd/aaaa. :wink:

Valeus.

Rafael_Steil

Ai ja nao da. Esses parametros de conexao sao um workaround que o driver do mysql usa para compensar certas funcionalidades do servidor mysql, que mudam de versao para versao.

Rafael

Z

Kartler, não é melhor você obter um objeto Date usando getDate(…) e, quando quiser imprimir, fazer as devidas formatações em Java, não?

Criado 5 de junho de 2005
Ultima resposta 6 de jun. de 2005
Respostas 5
Participantes 4