raducanu

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?
Auf Facebook teilen
Auf X (Twitter) teilen
Auf Reddit teilen
Auf Linkedin teilen
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-ID: 122730

Url: https://administrator.de/forum/bestimmten-tag-fuer-sql-query-errechnen-122730.html

Ausgedruckt am: 07.05.2025 um 09:05 Uhr

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';  
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.
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'
Raducanu
Raducanu 14.08.2009 um 09:11:36 Uhr
Goto Top
So, funktioniert alles. Super, Dankeschön