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?
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?
Please also mark the comments that contributed to the solution of the article
Kommentar vom Moderator Biber am Aug 14, 2009 um 07: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-Key: 122730
Url: https://administrator.de/contentid/122730
Printed on: April 20, 2024 at 13:04 o'clock
4 Comments
Latest comment
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'