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

Content-Key: 122730

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

Ausgedruckt am: 19.03.2024 um 03:03 Uhr

Mitglied: nxclass
nxclass 14.08.2009 um 08:28:01 Uhr
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';  
Mitglied: Raducanu
Raducanu 14.08.2009 um 08:49:10 Uhr
Goto Top
ja, es geht um mysql.
was währe dort der richtige befehl?
Sehe gerade den wald vor lauter bäumen nicht.
Mitglied: nxclass
nxclass 14.08.2009 um 09:05:12 Uhr
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'
Mitglied: Raducanu
Raducanu 14.08.2009 um 09:11:36 Uhr
Goto Top
So, funktioniert alles. Super, Dankeschön