MySQL Abfrage. Zeige alle Datensätz von jetzt bis nächsten Sonntag

Hallo,

ich habe eine Datenbank mit Datensätzen.
Ein Feld hat das Format „date“.
Nun möchte ich alle Datensätze von heute bis zum nächsten Sonntag angezeigt haben.

Leider ist mein SQL wissen extrem begrenzt…

SELECT * FROM table WHERE ‚date‘… dann hört es auf.

Vielen Dank!

Vorab: Ich antworte Dir aus dem Kopf, es kann also sein, dass Dir das hier nicht zu sehr hilft. Falls dem so ist, melde Dich noch mal.

Also ich denke mal, das sollte heißen:

SELECT * FROM table WHERE ‚date‘ >= $heute
AND
‚date‘

Hallo Marcel
Ein Datum wird in mySQL in der Form ‚2006-05-01‘
gespeichert, also Jahr, Monat, Tag. Du kannst die Daten
einfach vergleichen mit den Vergleichsoperatoren für
Zahlen (z.B. y

Hallo.

Alle MySql Date Funktionen findest du hier (für MySql 5.1):
http://dev.mysql.com/doc/refman/5.1/de/date-and-time…

Wenn du alles mit MySQL Funktionen realisieren willst, müsste die Abrage so in etwa lauten (ohne Garantie, weil nicht ausprobiert):
SELECT * FROM … WHERE MyDateField BETWEEN CURRENT_DATE() AND (CURRENT_DATE() + DATE_ADD(CURRENT_DATE(),INTERVAL (6 - WEEKDAY(CURRENT_DATE())) DAY))

Allerdings würde ich dir empfehlen, so wenig wie möglich Funktionen von MySQL zu verwenden. Das würde einen späteren Wechsel auf eine andere Datenbank erheblich erleichtern (z.B. auf SQLite oder PostgreSQL oder oder oder), denn diese Date-Funktionen unterliegen keinem SQL-Standard (soweit ich weiß) und sind somit in anderen Datenbanken nur teilweise oder gar nicht oder anders implementiert.
In diesem Fall müsstest du die Intervall-Werte mittels der Date-Funktionen der serverseitig eingesetzten Skriptsprache verwenden (wahrscheinlich PHP).

Viele Grüße und viel Spaß beim experimentieren!

Daniel Vogt
www.danielvogt.info

Hallo,
ich würde mit DAYOFWEEK(NOW()) den heutigen Wochentag herausfinden und dann bis zum nächsten Sonntag „rechnen“ (http://dev.mysql.com/doc/refman/5.1/en/date-and-time…)
d.h. du bekommst dann z.B. noch 4 Tage bis Sonntag und mit der info gehst du in die DATE_ADD (http://dev.mysql.com/doc/refman/5.1/en/date-and-time…) und hast somit dein Datum bis zu dem du „selecten“ willst.
ich hoffe das hat dir geholfen
lg

Hallo Marcel,
probier es mal mit folgender Abfrage:

SELECT * FROM table WHERE datumsspalte > NOW() AND datumsspalte

Sorry, habe die Anfrage übersehen, war lange auf Urlaub. Bin nicht mehr so drinnen im SQL.