2012-04-18 6 views
7

Wie bekomme ich die Zeilen in einer Tabelle, wo das heutige Datum zwischen (einschließlich) zwei DATE-Spalten dieser Zeile liegt? Nehmen wir zum Beispiel diese beiden Spalten einer Tabelle:SELECT MySQL-Zeilen, wobei das heutige Datum zwischen zwei DATE-Spalten liegt

enter image description here

Wie konnte ich die ersten und zweiten Reihe am 10. April oder der 3. Reihe am 25. bekommen (einschließlich, wie ich schon sagte) ?

Jede Hilfe würde sehr geschätzt werden. Danke im Voraus!

Antwort

13

folgt Sie werden eine Menge Leute finden Verwendung zwischen Operator, aber ich bevorzuge die Verwendung eines einfachen UND-Operators.

Ich tue das, weil, obwohl der Zwischenoperator IS inklusive ist, einfache Daten (2012-04-10) als Mitternacht gezählt werden können und daher nicht inklusive sein werden.

So sollte dies gut funktionieren und sind stets bemüht, die Grenzen des Datumsbereich:

Statement

SELECT * FROM table WHERE from_date >= '2012-04-10' AND to_date <= '2012-04-10' 
+4

Funktioniert super, außer du hast deine Krokodile in die falsche Richtung gesehen :) – JJJollyjim

+0

Hoppla, tut mir leid :) – Bill

6

einfach die SQL verwenden now() Funktion wie so die Datumsspalten vergleichen:

SELECT * from table where now() >= from_date and now() <= to_date 
+1

Verwenden CURDATE() statt, beachten, dass, wenn Sie JETZT() verwenden, es enthält Zeitinformation und kann dazu führen, einige Daten auszuschließen, dh nächste Funktion gibt false (0) zurück: wählen Sie "2010-01-01 14:00:00" <= "01.01.2010" – CesarC

+0

danke @CesarC :) –

15

können Sie eine Bedingung hinzufügen, wie

DATE(NOW()) between date1 and date2 
+0

Das war die Lösung für mein Problem, danke! –

+0

auch die Lösung – erwinnandpersad

Verwandte Themen