Seltener Vorfall bei der Festlegung von datesangaben in wo einer Abfrage von MySql?

Ich programmiere Classic ASP gegen eine MySql-database, die eine Verbindung mit ADODB und MySQL ODBC 5.3 ANSI-Treiber herstellt, aber ich habe einige Probleme, wenn ich das date in der Wo einer einfachen MySql-Abfrage einstelle, wenn meine Abfrage lautet:

Select * from cdr where date(calldate)='20170901' 

Die Abfrage ruft data in der ASP-Seite ab, das ist in Ordnung, aber wenn die Abfrage ist

 Select * from cdr where date(calldate) between '20170801' and '20170828' 

Wenn ich die Abfrage drucke und dann kopiere ich von html und Einfügen in Mysql Workbench, dann es data abrufen, aber wenn in der ASP-Seite selbst keine data abrufen.

Irgendwelche Ideen? Ich denke, vielleicht ist etwas mit ODBC-Treiber.

Solutions Collecting From Web of "Seltener Vorfall bei der Festlegung von datesangaben in wo einer Abfrage von MySql?"

Wenn Sie ein nicht-mysql-Standard-datesformat verwenden möchten, müssen Sie es richtig konvertieren

 Select * from cdr where date(calldate)=str_to_date('20170901','%Y%m%d') 

Ansonsten verwende das mysql-Standardformat

 Select * from cdr where date(calldate)='2017-09-01' 

Ich würde diesem Format nicht trauen: '20170801'

Da calldate ist, wäre dies schneller:

  WHERE calldate >= '2017-08-01' AND calldate < '2017-08-01' + INTERVAL 28 DAY`. 

Es würde INDEX(calldate) erfordern