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());
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.
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) { }
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.
2 curtidas
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
.
2 curtidas
Mágico, eram mesmo as aspas simples, muito obrigado Iohannes