Trabalhando com datas

Olá, bom dia.

Como eu faço para formatar uma variável data em java, enviá-la para o mysql e depois fazer uma pesquisa por data no banco. Eu consigo gravar no banco mas dá erro na hora da pesquisa, como se o formato da data não fosse reconhecido para se fazer a pesquisa. Parece que eu tenho que formatá-la antes de enviar para o mysql. Com eu faço isto?

Podem me ajudar?

Grato, Carlos.

Da uma pesquisada sobre sysdate do sql. com o sysdate vc pega a data do sistema pelo sql acho que seria mais facil do que pegar com java.

Olá amigo!
Eu tive alguns problemas deste tipo e a solução que eu arrumei foi definir no BD a data como string.
Então eu crio um método que pega a hora atual, formata a mesma da maneira que eu achar melhor e ele me retorna a data como String. Mando gravar no bd, faço pesquisa por data e recupero a mesma sem problemas.
Não sei se é uma boa prática mas estou trabalhando com todos os meus dados no bd como string para evitar estes tipos de problema.

tem tambem o java o java.util.Calendar

Se quiser transformar uma variavel string em objeto data, pode se fazer:

[code]
String variavelString = “20/09/2007”;
SimpleDateFormat sdf = new SimpleDateFormat(“dd/MM/yyyy”);

Date objData = sdf.parse(variavelString);[/code]

Pronto, assim você tem um objeto data, pelo que entendi, vc esta utilizando a API JDBC.

O inverso seria.

[code]
Date objData = new Date();
SimpleDateFormat sdf = new SimpleDateFormat(“dd/MM/yyyy”);

String variavelString = sdf.format(objData);[/code]

Abraços!

Pessoal, já que o assunto é data, vou postar aqui uma classe que mostra os exemplos de formatação das mesmas utilizando GrgorianCalendar. Pode ser útil para alguém.
Obs: Este exemplo eu consegui na Internet e desconheço o autor. Provavelmente é de algum GUJista daqui. rsrs

import java.text.DateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;


public class TestaData {

	
		Date hoje = new Date();
		
		public void formaData(){
		GregorianCalendar quinze = new GregorianCalendar(2006, Calendar.JANUARY, 1);
		quinze.add(Calendar.YEAR, 15);
		Date data = quinze.getTime();
		DateFormat formata = DateFormat.getDateInstance();
		String resultado = formata.format(data);
		System.out.println("--");
		System.out.println("--");
		System.out.println("Contar 15 anos depois a data será --> " + resultado);
		System.out.println("--");
		System.out.println("--");
		}
		public void viagemDe80Dias(){
		GregorianCalendar oitenta = new GregorianCalendar(2006, Calendar.JULY, 7);
		oitenta.add(GregorianCalendar.DATE, 80);
		Date data = oitenta.getTime();
		DateFormat formata = DateFormat.getDateInstance();
		String resultado = formata.format(data);
		System.out.println("--");
		System.out.println("--");
		System.out.println("A viagem de 80 dias acabará na data --> " + resultado); System.out.println("--");
		System.out.println("--");
		}
		public void dataAtualGregorianCalendar(){ 
		GregorianCalendar dataAtual = new GregorianCalendar();
		Date data = dataAtual.getTime();
		DateFormat formata = DateFormat.getDateInstance();
		String resultado = formata.format(data);
		System.out.println("--");
		System.out.println("--");
		System.out.println("Data de Hoje é --> " + resultado);
		System.out.println("--");
		System.out.println("--");
		}
		public void dataEscolhida(){
		GregorianCalendar dia = new GregorianCalendar(2006, Calendar.JULY, 7); 
		Date data = dia.getTime();
		DateFormat formata = DateFormat.getDateInstance();
		String resultado = formata.format(data);
		System.out.println("--");
		System.out.println("--");
		System.out.println("O dia informado para a classe GregorianCalendar é --> " + resultado);
		System.out.println("--");
		System.out.println("--");
		}
		public void propriedadesGregorianCalendar(){
		DateFormat formataInstancia = DateFormat.getDateInstance();
		DateFormat formatoSHORT = DateFormat.getDateInstance(DateFormat.SHORT);
		DateFormat formatoMEDIUM = DateFormat.getDateInstance(DateFormat.MEDIUM);
		DateFormat formatoLONG = DateFormat.getDateInstance(DateFormat.LONG);
		DateFormat formatoFULL = DateFormat.getDateInstance(DateFormat.FULL); 
		String dataDeHojeFomat = formataInstancia.format(hoje);
		String comoSHORT = formatoSHORT.format(hoje);
		String comoMEDIUM = formatoMEDIUM.format(hoje);
		String comoLONG = formatoLONG.format(hoje);
		String comoFULL = formatoFULL.format(hoje);
		System.out.println("--");
		System.out.println("--");
		System.out.println("(Default) Hoje é --> " + dataDeHojeFomat);
		System.out.println("--");
		System.out.println("--");
		System.out.println("(SHORT) Hoje é -->" + comoSHORT);
		System.out.println("--");
		System.out.println("--");
		System.out.println("(MEDIUM) Hoje é --> " + comoMEDIUM);
		System.out.println("--");
		System.out.println("--");
		System.out.println("(LONG) Hoje é --> " + comoLONG);
		System.out.println("--");
		System.out.println("--");
		System.out.println("(FULL) Hoje é --> " + comoFULL);
		System.out.println("--");
		System.out.println("--");
		}
		
		public static void main(String[] args) {
		TestaData teste = new TestaData();
		teste.formaData();
		teste.viagemDe80Dias();
		teste.dataAtualGregorianCalendar();
		teste.dataEscolhida();
		teste.propriedadesGregorianCalendar();


	}

}

boa.

Documentação do MySQL 5.0:

Ou seja, se você trabalhar com o

SimpleDateFormat sdf= new SimpleDateFormat(“yyyy-MM-dd”);

e tiver um objeto do tipo Date basta usar:

String data = sdf.format(objetoDate);

e dar insert com essa String data no banco.

Sacou?