Ich bin eine seltsame Rückkehr bekommen, wenn der diese Abfrage ausführt:Vergleichen Sie stammt aus verschiedenen Jahren in mySQL
SELECT * FROM rrp
WHERE end > "2012-12-31"
nichts zurückgegeben, obwohl ich auf dieser Tabelle eine Zeile haben, die „Ende“ -Spalte größer als "2012-12-31"
ist :
rrp
id_r | id__b | start | end | quantity
27 29 2012-01-01 2012-05-05 1
31 29 2012-11-01 2013-01-01 1
EDIT: start
und end
sind date
Felder
EDIT: Ich falsche Datenbank für meine Tests => falsches Ergebnis die Ausgabe verwendet wurde von Zend_Date kommen, wenn Sie einen Tag zu einem Datum hinzu:
$ start = „2012-12-31“ ; $ nStart = new Zend_Date ($ start, "JJJJ-MM-dd"); $ end = neues Zend_Date ($ nStart); $ end-> addDay (1);
Wenn ich $ Ende hallte: echo $end->get("YYYY-MM-dd");
es gibt 2013-12-31
Ist "Ende" eigentlich ein Datumsfeld? Ich weiß, dass MySQL manchmal seltsame Dinge tut, wenn es Daten konvertiert. –
ja sie sind, Entschuldigung für die Ungenauigkeit –
Da ist etwas, was du uns nicht mitteilst - denn mit allem, was du in deiner Frage geschrieben hast * sollte * funktionieren - [siehe dieses sehr einfache Beispiel] (http://www.sqlize.com/s4kzK77qFK) Setup das gleiche wie Ihre Frage (nur mit der Endspalte) – ManseUK