dsoltau: SELECT mit Datum

Hallo!

Ich habe schon die Suche geqäult, bin aber nicht fündig geworden. Hinzu kommt das ich in Sachen SQL absoluter Neuling bin.

Ich habe jetzt folgendes Problem:
Ich habe eine Tabelle in der ich alle Einträge aus dem Jahr 2006 zählen will. Die entsprechende Spalte heißt Datum und das Datum ist nach folgendem String aufgebaut: YYYY-MM-DD, z.B. 2006-06-03.

Kann mir da jemand helfen? Ich habe schon 1000 Varianten von SELECT COUNT(*) probiert, entweder zählt er 0 an alle Einträge.

Gruß,
Dennis

  1. Hallo.

    Ich habe eine Tabelle in der ich alle Einträge aus dem Jahr 2006 zählen will. Die entsprechende Spalte heißt Datum und das Datum ist nach folgendem String aufgebaut: YYYY-MM-DD, z.B. 2006-06-03.

    Normalerweise müsste SELECT count(*) FROM Tabelle WHERE left(Datum, 4) = '2006' funktionieren.

    Falls nicht wären die folgenden Informationen hilfreich:

    • Hast du bereits Datensätze in der Tabelle?
    • Wie ist die Tabelle aufgebaut?
    • Welche Datenbank verwendest du? MySQL?

    Viele Grüße,
    Thomas

    1. hi,

      das Datum ist nach folgendem String aufgebaut: YYYY-MM-DD, z.B. 2006-06-03.

      D.h., der Spaltentyp ist einer der Datumstypen des Datenbanksystems (MySQL)?

      Normalerweise müsste SELECT count(*) FROM Tabelle WHERE left(Datum, 4) = '2006' funktionieren.

      Oder auch WHERE YEAR(datum) = '2006'

      gruß,
      wahsaga

      --
      /voodoo.css:
      #GeorgeWBush { position:absolute; bottom:-6ft; }
    2. echo $begrüßung;

      Ich habe eine Tabelle in der ich alle Einträge aus dem Jahr 2006 zählen will. Die entsprechende Spalte heißt Datum und das Datum ist nach folgendem String aufgebaut: YYYY-MM-DD, z.B. 2006-06-03.

      Normalerweise müsste SELECT count(*) FROM Tabelle WHERE left(Datum, 4) = '2006' funktionieren.

      Wenn Datum ein String ist, sollte das mit LEFT() funktionieren. Ist es ein Datums/Zeit-Typ könnte es durch eine automatische Typumwandlung auch funktionieren, muss aber nicht. Ganz sicher sollte jedoch mit der Funktion YEAR() hinzubekommen sein.

      echo "$verabschiedung $name";

    3. Moin!

      Ganz große Klasse! Hat wunderbar funktioniert! Danke!

      Dennis

  2. Wenn du immer das Jahr 2006 überprüfen willst, dann geht es auch so ganz einfach:

    SELECT *
    FROM   tabelle
    WHERE  datum BETWEEN '2006-01-01' AND '2006-12-31'