Ankündigung

Einklappen
Keine Ankündigung bisher.

wie sortiert man Datum bei SQL Abfrage?

Einklappen

Neue Werbung 2019

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

  • wie sortiert man Datum bei SQL Abfrage?

    Ich will ein eigenes EventIndex per MySQL erstellen.

    Den Datum hab ich als Datentype Date eingestellt. Nun will ich bei der SQL-Abfrage nach Date sortieren, aber irgendwie haut das nicht hin.

    Tabelle:
    id | Datum | Ort | Bands

    Hab folgendes mal probiert:

    Code:
    SELECT * FROM Tabelle ORDER BY Datum ASC
    SELECT Datum, Ort, Bands FROM Tabelle GROUP BY Datum ASC
    ging aber beides nicht. Nun hab ich was ueber CAST() gelesen, da denke ich, vieleicht liegt es daran, dass man den Daten Typ Date nicht bei einer Abfrage so direkt soriteren. Aber wie man das richtig macht, weiss ich leider nicht. Bitte um Hilfe oder einen Verweis, wo ich das nach lesen kann.

    danke.
    www.rockinchina.com

  • #2
    ich musste diese komische Anführung reinbauen, dann klabt die Abfrage, aber warum das so ist, versteh ich immer noch nicht. Vielleicht weil ich in der Tabelle unterschiedliche Typen von Daten habe? Oder wandelt die Anführung `...` den Inhalt in ein String um?

    SELECT * FROM Tabelle ORDER BY `When` DESC
    www.rockinchina.com

    Kommentar


    • #3
      Welche Form hat das Datum denn?

      Vielleicht hilft eins von denen ja
      http://www.tutorials.de/tutorials27779.html
      http://www.little-idiot.de/mysql/mysql-165.html
      http://dev.mysql.com/doc/mysql/de/da...culations.html

      und arbeite nie... NIE mit *, sondern immer mit den Spalten die du haben willst.
      Wie lautet die adäquate Antwort auf "ihr benehmt euch wie kleine Kinder!" ?

      "Er hat Angefangen!"

      Kommentar


      • #4
        Danke für die Links, werde ich morgen lesen.

        das Datum hat den Datentyp Date, welches standartgemäß auf yyyy-mm-dd eingestellt ist.

        Hab jetzt das Problem, den Wochentag des jeweiligen Datum rauszubekommen, aber das wird schon klappen.

        Danke noch mal.
        www.rockinchina.com

        Kommentar


        • #5
          Hab jetzt das Problem, den Wochentag des jeweiligen Datum rauszubekommen,
          DATE_FORMAT()
          http://dev.mysql.com/doc/mysql/en/da...functions.html

          %a, %w oder %W

          Kommentar


          • #6
            Hai DiBo33, vielen Dank für den Verweis, nun hab ich das richtig.
            www.rockinchina.com

            Kommentar


            • #7
              PHP-Code:
              <?php
              $query 
              "SELECT `*`, DATE_FORMAT(`When`, '%a') AS WDay FROM `Event_index` ORDER BY `When` DESC";
              ?>
              Ich musste diese Anführung ` einbauen, damit alles funktionierte. Und GROUP BY `When` gibt immer ASC-Rheinfolge, egal ob ich DESC angebe oder ASC

              Ich wollte eigentlich noch einen COUNT (`*`) AS Anzahl einbauen, hatte eigentlich auch funktioniert, nur leider hat PHP von 4 gelesene Zeilen nur 3 ausgegeben und bei das COUNT AS Anzahl zeigt nur 1 an.
              www.rockinchina.com

              Kommentar


              • #8
                ist kein wunder, das du when mit `...` markieren musst.
                http://dev.mysql.com/doc/mysql/en/op...recedence.html
                when ist nämlich in mysql ein operator und wenn du when einfach so reinschreibst, geht mysql davon aus, das du den operator meinst.

                Zitat von rockinchina
                Und GROUP BY `When` gibt immer ASC-Rheinfolge, egal ob ich DESC angebe oder ASC
                könnte es sein, das deine mysql version < 3.23.34 ist? weil dann
                Zitat von mysql.de
                If you use GROUP BY, output rows are sorted according to the GROUP BY columns as if you had an ORDER BY for the same columns. MySQL has extended the GROUP BY clause as of version 3.23.34 so that you can also specify ASC and DESC after columns named in the clause:

                SELECT a, COUNT(b) FROM test_table GROUP BY a DESC
                falls ja, dann probier mal group by `When` order by `When` DESC

                Kommentar


                • #9
                  Hai SSJSonGoku1984,

                  danke für die Hinweise. Ich benutze jetzt ORDER BY, das funktioniert. Aber mit phpinfo hab ich Folgende Info zu mein MySQL-Verions: Client API version 3.23.49, außerdem, wenn ich GROUP BY in der Abfrage verwende, dann bekomme ich von jeden Wert nur die erste Record angezeigt, anstatte alle Records mit den gleichen Wert.
                  z. B. von fünf Datensätze, wo When = 2005-10-01, werden nur die erste angezeigt. Weiß nicht warum.

                  übrigens geht bei mir SELECT *, COUNT(*) nicht gleichzeitig in einer Abfrage ...
                  www.rockinchina.com

                  Kommentar

                  Lädt...
                  X