Bestimmten Tag für SQL Query errechnen
Ich möchte einen bestimmten Tag für eine SQL Abfrage bestimmen.
Ich habe eine Tabelle mit Datumsfelder (2009-08-14). Nun möchte ich mir alle Einträge von HEUTE "2009-08-14" bis nächsten Sonntag (2009-08-16) anzeigen lassen.
Wie bekomme ich das Datum des immer nächsten Sonntages?
Oder ist dieses mit SQL Befehlen möglich und ich muß PHP garnicht bemühen?
Ich habe eine Tabelle mit Datumsfelder (2009-08-14). Nun möchte ich mir alle Einträge von HEUTE "2009-08-14" bis nächsten Sonntag (2009-08-16) anzeigen lassen.
Wie bekomme ich das Datum des immer nächsten Sonntages?
Oder ist dieses mit SQL Befehlen möglich und ich muß PHP garnicht bemühen?
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Kommentar vom Moderator Biber am 14.08.2009 um 09:51:36 Uhr
Beitrag verschoben von "PHP" nach "Datenbanken".
Eine Lösung wäre zwar auch via PHP möglich gewesen, aber ....
So, wie der Thread gelaufen ist, geht es ja ausschließlich um [mySQL-]SQL.
Eine Lösung wäre zwar auch via PHP möglich gewesen, aber ....
So, wie der Thread gelaufen ist, geht es ja ausschließlich um [mySQL-]SQL.
Content-ID: 122730
Url: https://administrator.de/contentid/122730
Ausgedruckt am: 25.11.2024 um 00:11 Uhr
4 Kommentare
Neuester Kommentar
für mySQL kein Problem - das Standart SQL bietet sowas nicht.
http://dev.mysql.com/doc/refman/5.1/de/date-and-time-functions.html
zB. so...
http://dev.mysql.com/doc/refman/5.1/de/date-and-time-functions.html
zB. so...
SELECT
DATE_ADD(
DATE_SUB(DATE(NOW()), INTERVAL DAYOFWEEK(NOW()) DAY),
INTERVAL 8 DAY
) AS 'Sonntag';
kürzer, mit Variable und Tabellenabfrage
Es wird einfach der Wochentag vom Datum abgezogen um den Beginn der Woche zu bekommen, um anschließend eine Woche zu addieren.
Du brauchst die Funktionen: DATE_ADD(), DATE() und DAYOFWEEK().
http://downloads.mysql.com/docs/refman-5.1-de.chm ... unter Kapitel 12.5. 'Datums- und Zeitfunktionen'
SET @next_sonntag = SELECT DATE_ADD( DATE(NOW()), INTERVAL 8-DAYOFWEEK(NOW()) DAY) AS 'Sonntag';
SELECT * FROM table WHERE field BETWEEN NOW() AND @next_sonntag;
Es wird einfach der Wochentag vom Datum abgezogen um den Beginn der Woche zu bekommen, um anschließend eine Woche zu addieren.
Du brauchst die Funktionen: DATE_ADD(), DATE() und DAYOFWEEK().
http://downloads.mysql.com/docs/refman-5.1-de.chm ... unter Kapitel 12.5. 'Datums- und Zeitfunktionen'