FIXED - das habe ich jetzt - in ASP geschrieben
%Vor%Ursprüngliche Frage:
Einfache Frage, aber aus irgendeinem Grund scheint das nicht funktionieren zu können.
Ich habe ein Suchfeld, daneben befindet sich ein Auswahlfenster für Datumsbereiche, so dass der Benutzer innerhalb der letzten 1, 6 oder 12 Monate nach Fotos suchen kann.
Was ich habe, ist kein Fehler, aber es bringt keine Ergebnisse, wenn es tun sollte, das ist es:
%Vor%Die SQL-Ausgabe erzeugt dies:
%Vor%Das Feld 'dateCreated' der Datenbank ist auf (Date INDEX) gesetzt.
Kann jemand sehen, was falsch ist?
Die Daten in Ihrem resultierenden SQL sollten in einfachen Anführungszeichen stehen. Versuchen Sie, die dynamischen Teile Ihrer Abfrage mit Anführungszeichen zu umgeben. Etwas wie das:
%Vor%was ich vermute, würde dieses SQL erzeugen:
%Vor% Sehen Sie auch, ob Sie eine Möglichkeit finden, die Daten im üblicheren MySQL yyyy-mm-dd
-Format zu formatieren. So:
%d-%m-%Y
ist kein korrektes Datumsformat, und Datumswerte in MySQL sollten immer gleich lautenden Strings und dem ISO 8601 ( '%Y-%m-%d'
) Format entsprechen. 18/03/2011
wird als nur 18
dividiert durch 03
und 2011
interpretiert, was ungefähr 0.002…
ergibt.
Das heißt, Ihr SQL sollte stattdessen wie folgt aussehen:
%Vor% Nicht sicher, welche Technologie Sie für DateAdd()
verwenden, aber Ihr endgültiges Datumsformat ist falsch, zusätzlich zu der Tatsache, dass Ihre Datumswerte nicht in einfache Anführungszeichen eingeschlossen sind.
MySQL vergleicht Daten als 2011-03-18
nicht 18/03/2011
.
Beachten Sie, dass Sie dies in MySQL mit seiner Datumszeit tun können Funktionen Obwohl die Abfrage möglicherweise nicht zwischenspeichern kann.