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
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:
[quote]variavel_data_usuario = ‘25-09-2011’
select converte_data(variavel_data_usuario);[/quote]
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é.
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:
[code] // 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;
}
[/code]
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 ^^