• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

SQL Abfrage mit Ausschnitte aus dem Datum um damit zu sortieren

andynail

Mitglied
Hallo zusammen

auf meiner Seite soll ein Kalender mit Feiertagen und Geburtstage erstellt werden. Da das Feld Datum im Stil von 2011-05-10 Daten enthält verwende ich folgende SQL Anweisung:

Code:
SELECT *,DATE_FORMAT(Datum, '%d.%m.%Y') as Datum FROM `$table` ORDER BY substr(Datum,4,5), substr(Datum,6,7)

Und das sieht auch soweit so gut so aus als würde zuerst nach Monat und dann nach Monat sortiert werden würde. Jedoch stehen in allen Feldern das Jahr 2011, aber nicht beim Jahr. Sprich die Geburtstage stehen je nach Sortierung am Anfang oder Ende der Tabelle.

Also wie bekomme ich es hin das dass Jahr nicht berücksichtigt wird so das sich die Geburtstage in den Tages - Monateverlauf eingliedern?

Ich kann mich für Hilfe nur bedanken und freue mich auf Unterstützung.

Danke Gruß Andreas
 
Wenn Datum ein DateTime Feld ist, brauchst du kein substring, sondern eine entsprechende DateTime Funktion (die Seite müßtest du kennen). In deinem Fall month und year
 
OK

hat sich erledigt. Ich muß also auch nach den Jahren sortieren. Und also in der Reichenfolge Jahr, Monat, Tag sortieren. Und damit funktionierts.

Druß Andreas
 
Zuletzt bearbeitet:
OK

hat sich erledigt. Ich muß also auch nach den Jahren sortieren. Und also in der Reichenfolge Jahr, Monat, Tag sortieren. Und damit funktionierts.
Mir ist nicht ganz klar was du erreichen willst. Wenn du so sortierst, dann reicht es aus einfach nach Datum zu sortieren, aber du darfst dann nicht "Datum" als Alias für das Feld benutzen.

Also so:

Code:
SELECT *, DATE_FORMAT(Datum, '%d.%m.%Y') as FmtDatum FROM `$table` ORDER BY Datum
 
Hallo

ich habe eine Datenbank mit zb den Einträgen

2011-01-06
1982-10-05
2011-04-24
2011-10-03

und diese Angaben sollen sortiert werden, so dass der gezeigte Geburtstag sich in den entsprechenden Monat eingliedert, und das Datum wie nach deutschem Standard angezeigt wird.

Gruß Andreas
 
Genau das macht der Code, den ich dir gezeigt habe. Wie gesagt, das Problem ist der Alias des Formatierten Datum, der darf nicht so sein, wie der Name des unformatierten Datum.
 
Zurück
Oben