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?
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.
bsl.lacerda
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.
foxlaw
tem tambem o java o java.util.Calendar
eduardoac
Se quiser transformar uma variavel string em objeto data, pode se fazer:
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
importjava.text.DateFormat;importjava.util.Calendar;importjava.util.Date;importjava.util.GregorianCalendar;publicclassTestaData{Datehoje=newDate();publicvoidformaData(){GregorianCalendarquinze=newGregorianCalendar(2006,Calendar.JANUARY,1);quinze.add(Calendar.YEAR,15);Datedata=quinze.getTime();DateFormatformata=DateFormat.getDateInstance();Stringresultado=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("--");}publicvoidviagemDe80Dias(){GregorianCalendaroitenta=newGregorianCalendar(2006,Calendar.JULY,7);oitenta.add(GregorianCalendar.DATE,80);Datedata=oitenta.getTime();DateFormatformata=DateFormat.getDateInstance();Stringresultado=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("--");}publicvoiddataAtualGregorianCalendar(){GregorianCalendardataAtual=newGregorianCalendar();Datedata=dataAtual.getTime();DateFormatformata=DateFormat.getDateInstance();Stringresultado=formata.format(data);System.out.println("--");System.out.println("--");System.out.println("Data de Hoje é --> "+resultado);System.out.println("--");System.out.println("--");}publicvoiddataEscolhida(){GregorianCalendardia=newGregorianCalendar(2006,Calendar.JULY,7);Datedata=dia.getTime();DateFormatformata=DateFormat.getDateInstance();Stringresultado=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("--");}publicvoidpropriedadesGregorianCalendar(){DateFormatformataInstancia=DateFormat.getDateInstance();DateFormatformatoSHORT=DateFormat.getDateInstance(DateFormat.SHORT);DateFormatformatoMEDIUM=DateFormat.getDateInstance(DateFormat.MEDIUM);DateFormatformatoLONG=DateFormat.getDateInstance(DateFormat.LONG);DateFormatformatoFULL=DateFormat.getDateInstance(DateFormat.FULL);StringdataDeHojeFomat=formataInstancia.format(hoje);StringcomoSHORT=formatoSHORT.format(hoje);StringcomoMEDIUM=formatoMEDIUM.format(hoje);StringcomoLONG=formatoLONG.format(hoje);StringcomoFULL=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("--");}publicstaticvoidmain(String[]args){TestaDatateste=newTestaData();teste.formaData();teste.viagemDe80Dias();teste.dataAtualGregorianCalendar();teste.dataEscolhida();teste.propriedadesGregorianCalendar();}}
foxlaw
boa.
L
Lao
Documentação do MySQL 5.0:
Ou seja, se você trabalhar com o
SimpleDateFormat sdf= new SimpleDateFormat(“yyyy-MM-dd”);