Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] Jahr und Monat aus DATE spalte in MySQL abfragen.

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • [Erledigt] Jahr und Monat aus DATE spalte in MySQL abfragen.

    Hallo!

    Ich habe eine MySQL Tabelle, in der u.a. die Spalte "DATUM" im Format yyyy-mm-tt existiert.
    Nun möchte ich aber, das der Besucher die ausgegeben Daten nach Jahr und Monat per Formular filtern kann.

    Z.B. so:
    "Zeige mir alle Datensätze aus dem Jahr [FORMULAR]"

    Das Problem besteht darin, das ich nicht weiß, wie so ein query bei MySQL aussehen muss oder geht das gar nicht?
    Wären Timestamps besser?

    Ich hoffe, dass Ihr versteht was ich meine.

  • #2
    SELECT DATE_FORMAT(DATUMFELD, '%Y') AS JAHR FROM ......

    Kommentar


    • #3
      Danke!

      Aber jetzt habe ich noch ein Problem.

      Hier erstmal die Abfrage:

      PHP-Code:
      <?php
      $query
      "SELECT *,DATE_FORMAT(datum, '%d.%m.%Y - %H:%i') AS datum FROM `v2006-content` WHERE 1 AND `empfaenger` = 'all' ORDER BY `datum` DESC LIMIT ".$MAX_EINTRAEGE." ";
              
      $result mysql_query($query);
              
      $number mysql_num_rows($result);

      ?>
      Das Problem liegt hierbei bei dem "ORDER BY".
      Und zwar sortiert er die Daten nicht nach chronologisch sondern nach der höhe der Zahlen.

      Beispiel:
      30.08.2005
      30.06.2005
      13.07.2005
      01.01.2006

      Aber es sollte eigentlich so aussehen:
      01.01.2006
      30.08.2005
      13.07.2005
      30.06.2005

      Kann mir da einer sagen warum MySql das so macht?

      Kommentar


      • #4
        Du kannst das Datum, im Format von 'datetime' [yyyy-mm-tt hh:ii:ss]
        sehr gut - und korrekt - zum sortieren verwenden!
        Allerding nicht ein Datum, das du mit DATE_FORMAT(datum, '%d.%m.%Y - %H:%i') umgebaut hast.
        Du solltest dem 'umgebauten Datum' deshalb einen neuen Namen verpassen,
        und zum Sortieren das 'date bzw. datetime -Format' verwenden.
        zB so:

        PHP-Code:
        <?php
        $query
        "SELECT *,
                    DATE_FORMAT(datum, '%d.%m.%Y - %H:%i') AS form_datum /* <<< umgebaut und umbenannt <<< */
                FROM `v2006-content`
                WHERE `empfaenger` = 'all'
                ORDER BY `datum` DESC                         /* im Format "
        yyyy-mm-tt hh:ii:ss" */
                LIMIT "
        .$MAX_EINTRAEGE." ";
        $result mysql_query($query);
        $number mysql_num_rows($result);
        ?>
        ~dilemma~

        Kommentar


        • #5
          da hätte man ja auch selbst drauf kommen können

          Kommentar


          • #6
            [quote="dilemma"]...

            PHP-Code:
            <?php
            $query
            "SELECT *,
                        DATE_FORMAT(datum, '%d.%m.%Y - %H:%i') AS form_datum /* <<< umgebaut und umbenannt <<< */
                    FROM `v2006-content`
                    WHERE `empfaenger` = 'all'
                    ORDER BY `datum` DESC                         /* im Format "
            yyyy-mm-tt hh:ii:ss" */
                    LIMIT "
            .$MAX_EINTRAEGE." ";
            $result mysql_query($query);
            $number mysql_num_rows($result);
            ?>
            /quote]

            Funktioniert denn überhaupt die Kombination von "SELECT *," und "DATE_FORMAT(...)" in einer Abfrage? Bei mir hat es nicht funktioniert. Geht es denn mit einem JOIN, um diese zwei Abfrage in einem Result zupacken?
            www.rockinchina.com

            Kommentar


            • #7
              Bei mir funktioniert das so.

              Kommentar


              • #8
                ok, danke, jetzt funktionierts auch bei mir, musste nur die Anführungen `..` zu den Variables dazustellen.
                www.rockinchina.com

                Kommentar

                Lädt...
                X