raducanu
Goto Top

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?
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.

Content-Key: 122730

Url: https://administrator.de/contentid/122730

Printed on: April 20, 2024 at 13:04 o'clock

Member: nxclass
nxclass Aug 14, 2009 at 06:28:01 (UTC)
Goto Top
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...
SELECT 
DATE_ADD(
    DATE_SUB(DATE(NOW()), INTERVAL DAYOFWEEK(NOW()) DAY),
    INTERVAL 8 DAY
) AS 'Sonntag';  
Member: Raducanu
Raducanu Aug 14, 2009 at 06:49:10 (UTC)
Goto Top
ja, es geht um mysql.
was währe dort der richtige befehl?
Sehe gerade den wald vor lauter bäumen nicht.
Member: nxclass
nxclass Aug 14, 2009 at 07:05:12 (UTC)
Goto Top
kürzer, mit Variable und Tabellenabfrage
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'
Member: Raducanu
Raducanu Aug 14, 2009 at 07:11:36 (UTC)
Goto Top
So, funktioniert alles. Super, Dankeschön