Então, tenho a seguinte dúvida: tenho uma variável que pega a data do meu sistema, e joga pro banco (sendo essa variavel uma String). Porém, precisava num dado momento do programa, fazer a ordem decrescente de registros, com relação a data, ou seja, mostrar ao usuário da menor à maior data registrada.
Porém, a dúvida maior é essa: para que tipo de arquivo eu devo converter essa String? e como vou fazer a chamada do banco de dados, nessa ordem decrescente (alem de usar o DESC, no mysql) ?
Então, tenho a seguinte dúvida: tenho uma variável que pega a data do meu sistema, e joga pro banco (sendo essa variavel uma String). Porém, precisava num dado momento do programa, fazer a ordem decrescente de registros, com relação a data, ou seja, mostrar ao usuário da menor à maior data registrada.
Porém, a dúvida maior é essa: para que tipo de arquivo eu devo converter essa String? e como vou fazer a chamada do banco de dados, nessa ordem decrescente (alem de usar o DESC, no mysql) ?
Obrigada a todos, desde já! ;][/i][/quote]
Converta para o tipo Date e para fazer a consulta no banco use
SELECT * FROM suatabela ORDER BY suadata
também pode colocar no final do código DESC para listar de forma decrescente.
Seguinte…O banco de dados entende como ano/mes/dia
Entaum esta e a forma de gravar.
veja como faco.
public class MinhasDatas{
//aqui eu converto a data pra ano/mes/dia
public String formataDataRetornaBD(String data) throws ParseException{
SimpleDateFormat df = new SimpleDateFormat("dd/MM/yyyy");
Date d = df.parse(data);
df = new SimpleDateFormat("yyyy-MM-dd");
String s = df.format(d);
return s;
}
//aqui eu converto para dia/mes/ano
public String formataDataExibe(String data) throws ParseException{
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
Date d = df.parse(data);
df = new SimpleDateFormat("dd/MM/yyyy");
String s = df.format(d);
return s;
}
}
Funciona assim: O método FormataDataRetornaBD recebe uma string dia/mes/ano e converte para ano/mes/dia para conseguir gravar no BD. Ja o metodo formataDataExibe eu mando uma string ano/mes/dia e me retorna dia/mes/ano…
Pra gravar vc faz assim.
String data = "26/08/2011";
PreparedStatement stm = conexao.prepareStatement("INSERT INTO tabela (data) VALUES (?)");
stm.setDate(1, java.sql.Date.valueOf(new MinhasDatas().formataDataRetornaBD(data))); //preste atencao a esta linha
[i]Então pessoal, obrigada a todos, mas o código do acbit foi o mais correto e util pra mim…
Só que a única coisa que ñ esta funcionando é isto, e essa é a minha dúvida:
assim, eu tenho q salvar no meu banco uma variavel q tem a formatação (yyyy-mm-dd), q é do tipo date format. Porém, o meu banco a coluna da data é do tipo date, e ele esta recusando d salvar os registros por causa dessa variavel. Interfere o banco ser do tipo date, e a variavel do tipo date format? por isso o erro?
1º Quando abro meu frame, que é só pra mostrar a data ao usuário:
Date agora = new Date(); //chama data atual do sistema numa variavel Date
mostradata = DateFormat.getDateInstance(DateFormat.MEDIUM); //defino o tipo de exibição dela
Pontos.pegadata = mostradata.format(agora); //transformo-a em String
labelRecebeData.setText(Pontos.pegadata); // é exibida no label
mostradata = new SimpleDateFormat("yyyy-MM-dd"); // código sem uso, mas deixei pois vou utiliza-lo mais pra frente
2º Ação do botão quando clicado referente a data:
java.sql.Date atualDate = new java.sql.Date(new Date().getTime()); // cria variavel atualDate, pegando a data do sistema , no formatado padrao (yyyy-mm-dd), para ser jogada no banco de dados