SQL - Nach Jahr gruppieren

Hi!

Code:
DATE_FORMAT(`date`, '%Y') AS item
...muß die Spalte (das Feld) "date" nicht ohne Anführungszeichen angegeben werden? So ergibt die Anfrage bei mir immer "NULL" (, da wohl 'date' als Datums-String interpretiert wird)...?

Liebe Grüße,
Mark.

//edit: oh, Danke, kuddeldaddeldu, mit diesen Backticks geht's natürlich auch bei mir ... wieder was gelernt, vielen Dank! :)
 
Hi Mark,

das sind Backticks:

`
Die dienen in MySQL als Begrenzer für Tabellen- und Spaltennamen. So kann man auch Schlüsselwörter als Bezeichner verwenden. ;)

@Sasser: Ich wollte das Ergebnis wissen. Wie Du item definierst, sagtest Du bereits. Den Typ von date bist Du auch noch schuldig...
Und wer hat Dir dazu geraten, ein Datum in MySQL im Format 'mm-dd-jjjj' zu speichern? Ein Datum speichert man als DATE oder DATETIME und damit hat es das Format YYYY-MM-DD.

LG
 
Sorry, war eine falsche Aussage von mir! Ich habe in einer anderen Tabelle das Datum im Format: yyyy-mm-dd wie auch mir hier geraten wurde!

Nur leider habe ich in meiner neuen Tabelle mich verschrieben und habe das Datum im Format: mm-dd-yyyy gespeichert. Ich werde es umschreiben und dann nochmal testen!

// Edit: Das Format des Feldes ist "varchar" und damit arbeite ich auch in anderen Tabellen und es funktioniert!

Folgendes ergibt nun mein erhofftes Resultat:

Code:
$result = mysql_query ( "SELECT DATE_FORMAT(`date`, '%Y') AS item, SUM(`amount`) AS amounts FROM transactions GROUP BY DATE_FORMAT(`date`, '%Y') ORDER BY DATE_FORMAT(`date`, '%Y') ASC" );

Vielen Dank für eure Hilfe! :)
 
Zuletzt bearbeitet:
Eine Frage dazu habe ich noch:

Kann man, wenn man nach Monaten gruppiert, anstatt der Nummer des Monats den Namen ausgeben?
 
Hi,

wie wär's, wenn Du einfach mal in die Datums- und Zeitfunktionen schaust? DATE_FORMAT() hast Du ja schließlich schon gefunden...
Ein Datum als varchar zu speichern ist übrigens Käse. Und "funktionieren" ist da eher Definitionssache. Hättest Du das extra dafür vorgesehene DATE genommen, hättest Du beim Eintragen von Datensätzen sofort bemerkt, dass mm-dd-jjjj das falsche Format ist...

LG
 
Zurück