MySQL-Datum zwischen

8

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?

    
TheCarver 18.09.2011, 20:34
quelle

5 Antworten

30

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:

%Vor%     
Asaph 18.09.2011, 20:38
quelle
7

Wenn Sie speziell von "jetzt" zurückblicken, warum nicht

%Vor%

Sie brauchen keinen "Bereich", legen Sie einfach den Monatsbereich ein, den Sie zulassen möchten ...

    
DRapp 18.09.2011 20:51
quelle
2

%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%     
minhee 18.09.2011 20:42
quelle
0

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.

    
Jason McCreary 18.09.2011 20:39
quelle
0

Wenn diese Strings nicht in Anführungszeichen stehen, glaube ich, dass Sie gerade Division machen und dann die Daten zwischen einem sehr kleinen Zeitrahmen vergleichen.

    
dlawrence 18.09.2011 20:41
quelle

Tags und Links