Sortieren mit Datumsformat

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

  • Sortieren mit Datumsformat

    Hallo,

    ich frage mit folgendem SQL-Statement eine Tabelle ab:

    PHP-Code:
    SELECT date_format(Daum'%d.%m.%Y') AS Datum 

    nun würde ich es gerne auch nach dem Datum sortieren:

    PHP-Code:
    SELECT date_format(Daum'%d.%m.%Y') AS Datum ORDER BY Datum ASC 
    funktioniert natürlich nicht, es wird zwar nach den Tagen, aber nicht nach den Monaten und Jahren sortiert.

    Gibt es da eine Möglichkeit, vielleicht so irgendwas in der Art:

    PHP-Code:
    SELECT date_format(Daum'%d.%m.%Y') AS Datum ORDER BY date_format(Daum'%d.%m.%Y'ASC 
    DAnke

    Thomas

  • #2
    Kennst du den Datentyp DATE?
    Wenn ja, nutze ihn.
    Wenn nein, kennst du das amerikanische Datumsformat? (YYYY-MM-DD)
    Sortiere danach.
    it's not a bug,
    it's a feature!

    Kommentar


    • #3
      Date gibt doch das aktuelle Systemdatum zurück, wie soll mir das bei meinem Problem helfen?

      Gruß Thomas

      Kommentar


      • #4
        Die PHP-Funktion date kann dir das aktuelle Datum zurückliefern

        Der mysql-Datentyp DATE tut das nicht: http://dev.mysql.com/doc/mysql/en/column-types.html
        Ich denke, also bin ich. - Einige sind trotzdem...

        Kommentar


        • #5
          SELECT date_format(Daum, '%d.%m.%Y') AS Datum ORDER BY Daum DESC
          Grüsse,
          Sebastian


          Profil Flex Freelancer
          Twitter twitter.com/flashhilfe
          Web Flash und Flex Community

          Kommentar


          • #6
            Original geschrieben von Sebastian W
            SELECT date_format(Daum, '%d.%m.%Y') AS Datum ORDER BY Daum DESC
            Was bitte willst du uns damit sagen?
            it's not a bug,
            it's a feature!

            Kommentar


            • #7
              Original geschrieben von XGremliN
              Was bitte willst du uns damit sagen?
              würdest du bitte die Augen mal öffnen!

              Er sortiert nach der Spalte Daum anstatt wie vorhin nach Datum, welche durch die Formatierung in Form von 'DD.MM.YYYY' stand.

              Kommentar


              • #8
                Sorry, aber das raff ich jetzt net,

                die Datumsspalte hat das Format "Date" und speichert das in Form von "YYYY-DD-MM", nun wandle ich dieses Format mit "date_format(Datum, '%d.%m.%Y')" nach "DD.MM.YYYY" um und kann es so natürlich nicht mehr nach dem Format "YYYY.DD.MM" (also mit ORDER BY Datum ASC) sortieren...

                Das hier ist ja kein Problem:
                PHP-Code:
                SELECT date_format(Datum'%d.%m.%Y') AS Datum 
                Doch wie kann es jetzt halt sortieren (vielleicht wieder umwandeln?)

                Kommentar


                • #9
                  mach mal so:


                  SELECT date_format(Datum, '%d.%m.%Y') dtDatum from ... order by Datum

                  Kommentar


                  • #10
                    Na klar... nur logisch... Funzt.

                    Thanks...

                    Thomas

                    Kommentar


                    • #11
                      Kurs gesagt:

                      Das Datum ist in dem bestehenden Format (DATE) zum sortieren geeignet. Eine Konvertierung mit date_format() wird daher nur für die Ausgabe benötigt.
                      Grüsse,
                      Sebastian


                      Profil Flex Freelancer
                      Twitter twitter.com/flashhilfe
                      Web Flash und Flex Community

                      Kommentar


                      • #12
                        Jetzt habe ich aber doch noch mal ein Fragchen:

                        Also ich erstelle nun ein Recordset mit dem SQL-Statement:

                        "SELECT date_format(Datum, '%d.%m.%Y') dtDatum from ... order by Datum"

                        Doch wie füge ich es jetzt ein?
                        Momentan habe ich das so in einer Schleife:
                        PHP-Code:
                        echo $row_RsTermine['Datum']; 
                        doch so zeigt er die Datensätze nicht sortiert an... wie kann ich das dtDatum nun einbinden? Einfach schreiben:
                        PHP-Code:
                        echo $row_RsTermine['dtDatum']; 
                        funzt nicht...

                        Kommentar


                        • #13
                          Original geschrieben von fragezurseite
                          Einfach schreiben:
                          PHP-Code:
                          echo $row_RsTermine['dtDatum']; 
                          funzt nicht...
                          was heißt "funz nicht"?
                          - es kommt nichts raus?
                          - es kommt was raus aber ... ?
                          Bedenke, dass du amerikanisch sortiert, aber die Daten, die du ausliest, ist in deutschen Format.

                          Kommentar


                          • #14
                            hm...

                            Aber es muss doch egal sein ob ich amerikanisch oder deutsch sortiere, Datum bleibt Datum?!?

                            Müßte er mit jetzigem SQL-Statement nicht nach der Datumsspalte sortieren (amerikanisch) und dann nacheinander, mit Date_Format ins deutsche umgewandelt, ausgeben?

                            Kommentar


                            • #15
                              Original geschrieben von fragezurseite
                              Müßte er mit jetzigem SQL-Statement nicht nach der Datumsspalte sortieren (amerikanisch) und dann nacheinander, mit Date_Format ins deutsche umgewandelt, ausgeben?
                              sollte man das nicht einfach kurz ausprobieren, anstatt irgendwelche "müsste"-fragen zu stellen ...?
                              I don't believe in rebirth. Actually, I never did in my whole lives.

                              Kommentar

                              Lädt...
                              X