How to filter by date range (from and to) ?!

We need a query of the form SQL-WHERE (for the setFilter function).

Log debag

"Дата BETWEEN '01.05.2017' AND '02.05.2017'" "[Microsoft][Драйвер ODBC Microsoft Access] Несоответствие типов данных в выражении условия отбора." "QODBC3: Unable to execute statement" 

I am writing on Qt.

 void DataBase::DiapasonDate(QTableView *tableView,QString TableName, QDateEdit *Date1, QDateEdit *Date2) { objTable ->setTable(TableName); // Date1->setDisplayFormat("MM/dd/yyyy"); // Date2->setDisplayFormat("MM/dd/yyyy"); QString queriDiaposon = "Дата BETWEEN '" + Date1->text() + "' AND '"+ Date2->text() +"'"; qDebug()<<queriDiaposon; objTable->setFilter(queriDiaposon); if (!objTable ->select()) { qDebug()<<objTable->lastError().databaseText(); qDebug()<<objTable ->lastError().driverText(); }else { tableView->setModel(objTable); } } 
  • one
    In MS Access, date literals are framed not by quotes, but by sharps. - Akina
  • The date contains a syntax error in the query expression 'Date BETWEEN # 01/01/2000 # AND # 05/01/2017 #'. " - hays
  • one
    In this case, it remains only to propose to try using the "standard" American time format MM-DD-YYYY. - Akina

1 answer 1

Understood it was necessary to change the type format

  Date1->setDisplayFormat("MM/dd/yyyy"); Date2->setDisplayFormat("MM/dd/yyyy"); 

And query type

 objTable->setFilter("Дата BETWEEN #" + Date1->text() + "# AND #"+ Date2->text() +"#");