Filtro por datas a partir de JTextfield

5 respostas Resolvido
M

Estou com dificuldade a filtrar por essas datas

preencherTabela("SELECT * FROM `tbl_entrada` INNER JOIN tbl_tipo_documento ON tbl_entrada.FKTipodeDocumento = tbl_tipo_documento.PK_TipoDoc WHERE DatadeRecepcao BETWEEN " +jTextFieldPData.getText()+  "AND" +jTextFieldSData.getText());

5 Respostas

I

Seria interessante indicar qual a dificuldade ou o alerta exibido, pois fica difícil ajudar, baseado em suposições. No entanto, devo preveni-lo que os SGBDs geralmente utilizam o sistema ISO 8601 de datas, ou seja yyyy-MM-dd (year-month-day). Se você estiver passando o padrão dd/mm/aaaa, não irá funcionar. Primeiro nos esclareça qual padrão está utilizando.

M
O mesmo que do Banco.

try{ javax.swing.text.MaskFormatter data =  new javax.swing.text.MaskFormatter ("####-##-##");

jTextFieldSData = new javax.swing.JFormattedTextField(data);  } catch (Exception e) {  }
I
Solucao aceita

Certo, as datas devem ser expressas entre aspas simples. Tente assim:

String strSQLPesquisa "SELECT * FROM tbl_entrada " 
	+ "INNER JOIN tbl_tipo_documento " 
	+ "ON tbl_entrada.FKTipodeDocumento = tbl_tipo_documento.PK_TipoDoc "
	+ "WHERE DatadeRecepcao BETWEEN '" + jTextFieldPData.getText() + "' "
	+ "AND '" + jTextFieldSData.getText() + "'";

preencherTabela(strSQLPesquisa);

Obs.: eu separei porque não gosto te passar String gigante para métodos.

staroski

Não concatene parâmetros na String da query.
Ao invés disso, utilize PreparedStatement e passe os parâmetros com o tipo de dado adequado, no caso java.sql.Date.

M

Mágico, eram mesmo as aspas simples, muito obrigado Iohannes

Criado 13 de dezembro de 2019
Ultima resposta 13 de dez. de 2019
Respostas 5
Participantes 3