[Resolvido] Ajudinha com data Java para JDBC

3 respostas
ingoguilherme

Olá! Estou fazendo um programa (um trabalho da faculdade) e nele há um campo do usuário inserir a data, na verdade são dois campos, a data atual e a data do retorno. A data atual eu inseri no banco (Mysql) usando a função ‘now()’ automaticamente, assim o usuário não necessita digita-lá. O professor que nós façamos a inserção dos dados através de procedures, até aó tudo bem, criei a procedure e tudo, só que tem um porém, ele pediu que no programa seja inserido a data no formato dd/mm/yyyy e no banco salve no formato do propio banco que é yyyy/mm/dd.

O meu problema é o seguinte, ele quer que a gente faça a conversão da data no proprio banco através de uma function, não sei com o fazer, sei faze-lo somente pelo java, tem como me ajudarem?

Obs.: Desculpe se estou na área errada, sou novato aqui ainda, caso estiver na área errada, por favor alguém poderia mover o tópico?

Att. Ingo G. B. Eyng

3 Respostas

ingoguilherme

Para quem estiver interessado eu consegui, criei uma função no Mysql que muda a data do formato brasileiro ‘dd-mm-yyyy’ para o formato do banco ‘yyyy-mm-dd’, assim consigo inserir no banco com o usuario colocando a data no formato brasileiro lá no programa.

Eu apenas chamo a função na hora de inserir, colocando a variavel com a data inserida pelo usuario chamando a função. Assim:

variavel_data_usuario = ‘25-09-2011’
select converte_data(variavel_data_usuario);

O retorno seria:

Assim o banco aceitaria a data ao inves de adicionar uma data nula ‘0000-00-00’
O código da function que criei está ai pra quem quiser:

DELIMITER || CREATE FUNCTION converte_data(p_data varchar(10)) RETURNS VARCHAR(10) RETURN str_to_date(p_data, '%d-%m-%Y');; || DELIMITER ;Demorei um pouquinho pra achar o ‘str_to_date’ não conhecia ainda ^^, afinal to começando agora né.

T

Quando comecei o meu projeto de conclusão tinha a mesma dúvida que você e um amigo me passou esses métodos. Eu uso eles na hora que eu pego a data do meu jTextField para converter pro formato usado no BD ou vice-versa:

// Passa datas no formato dd/MM/yyyy para yyyy-MM-dd
    public static String formatDate(String data){
        String date =new String();
      
            date+=data.substring(6,10);
            date+="-"+data.substring(3,5)+"-";
            date+=data.substring(0,2);
        
        
       return date;
    } 

      // Passa datas no formato yyyy-MM-dd para dd/MM/yyyy
    public static String formatDateSQL(String data){
        String date =new String();

            date+=data.substring(8,10);
            date+="/"+data.substring(5,7);
            date+="/"+data.substring(0,4);
       return date;
     }
ingoguilherme

Tadeu-Costa

vlw cara, teus metodos foram muito uteis, me ajudaram muito, estou até utilizando eles no meu projeto.

pude eliminar a function do banco e pra fica mais legal agora o usuario pode inserir a data com as barrinhas ^^ ao inves de traços ^^

Criado 29 de novembro de 2011
Ultima resposta 2 de dez. de 2011
Respostas 3
Participantes 2