MYSQL Abfrage
*jiriki*
- datenbank
0 Ilja0 Axel Richter0 Tom
Ich will aus meiner Geburtstags-Tabelle ( Datentyp "Date" ) die Daten so auslesen, dass sie primär nach Monat und sekundär nach Tag sortiert sind. Das Jahr spielt keine Rolle.
Dabei soll die Auflistung bei dem, dem aktuellen Tag am nächsten gelegenen, Geburtstag beginnen.
Jetzt meine Frage: Wie setze ich einen "Startwert" meiner sortierten Abfrage und kann ich überhaupt gezielt auf Monat und Tag zugreifen in einer "SELECT"-Abfrage?
MfG
*jiriki*
hi,
Ich will aus meiner Geburtstags-Tabelle ( Datentyp "Date" ) die Daten so auslesen, dass sie primär nach Monat und sekundär nach Tag sortiert sind. Das Jahr spielt keine Rolle.
MONTH(geburtstag), gibt den monat
DAYOFMONTH(geburtstag), gibt den tag
Current_Date(), gibt das aktuelle datum
die drei sachen kombinieren, so wie du es bruchst würde ich sagen.
Ilja
Hallo,
Ich will aus meiner Geburtstags-Tabelle ( Datentyp "Date" ) die Daten so auslesen, dass sie primär nach Monat und sekundär nach Tag sortiert sind. Das Jahr spielt keine Rolle.
Dabei soll die Auflistung bei dem, dem aktuellen Tag am nächsten gelegenen, Geburtstag beginnen.Jetzt meine Frage: Wie setze ich einen "Startwert" meiner sortierten Abfrage
http://www.mysql.de/doc/de/SELECT.html
->WHERE
http://www.mysql.de/doc/de/Using_DATE.html
Aus Gründen der Annehmlichkeit konvertiert MySQL automatisch ein Datum in eine Zahl, wenn das Datum in einem numerischen Zusammenhang benutzt wird (und umgekehrt).
http://www.mysql.de/doc/de/Date_and_time_functions.html
CURDATE()
und kann ich überhaupt gezielt auf Monat
http://www.mysql.de/doc/de/Date_and_time_functions.html
MONTH(datum)
und Tag zugreifen in einer "SELECT"-Abfrage?
http://www.mysql.de/doc/de/Date_and_time_functions.html
DAYOFMONTH(datum)
viele Grüße
Axel
Hello,
Jetzt meine Frage: Wie setze ich einen "Startwert" meiner sortierten Abfrage und kann ich überhaupt gezielt auf Monat und Tag zugreifen in einer "SELECT"-Abfrage?
Einen "Startwert" kannst Du im Sinne von Index-Unterstützung nicht setzen, da das Datum ja als Ganzes gespeichert und ggf. indiziert ist, Du aber im ersten Schritt nur den Monat haben willst. Wenn diese Anforderung oft vorkommt, kann es bei großen Tabellen (viele Datansätze) daher sinnvoll sein, den Monat in einer eigenen redundanten Spalte abzuspeichern und zu indizieren oder den Typ DayOfYear einzuführen, der dann zugegebener Weise in den Schaltjahren wieder Kummer bereitet.
Du wirst nicht drum herum kommen, den gesamten Datenbestand der Tabelle ins Filter einzuschließen und durchzuarbeiten.
Grüße
Tom