datum sortierung

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

  • datum sortierung

    aus eine mysql db sortier ich nach denn feld "datum" die geht gut bis ich 12.12.2002 ausprobiert hab. der kommt jetzt zwischen 11.12.2001 und 13.12.2001. nicht gut.

  • #2
    welchen Datentyp hat dein DB-Feld?
    CHAR oder VARCHAR?

    php-Entwicklung | ebiz-consult.de
    PHP-Webhosting für PHP Entwickler | ebiz-webhosting.de
    die PHP Marktplatz-Software | ebiz-trader.de

    Kommentar


    • #3
      Original geschrieben von Berni
      welchen Datentyp hat dein DB-Feld?
      CHAR oder VARCHAR?
      aus unerfindlichen grunden TEXT

      Kommentar


      • #4
        Die leichteste Lösung ist einfach irgend ein Fels zu nehmen. Ich würde ja date nehmen. Andere gehen aber auch.
        In die Datenbank schreibst du dein Datum dann so rein

        JJJJMMTT -> 20021212

        Also einfach nur andersrum in die Datenbank schreiben. Jahr zuerst, dann Monat und dann die Tage.

        Dein Problem ist, dass wenn du nach Datum sortiert, nach einem Wert sortiert wird, dass sieht bei dir dann so aus.

        11122001
        12122002
        13122001

        Schau dir alle drei dates rein mathematisch an, dann verstehst du die Reihenfolge der Sortierung von selbst.
        Ans Ziel kommt nur der, der auch eins hat. www.e-cross.info

        Kommentar


        • #5
          hmmm?

          Ja gibts denn dann überhaupt eine sinnvolle (nicht grade platzraubende) Funktion, die sowas machen kann?
          "Computers in the future may weigh no more than 1.5 tons."
          - Popular Mechanics magazine
          1949

          Kommentar


          • #6
            Die was machen kann?
            Ans Ziel kommt nur der, der auch eins hat. www.e-cross.info

            Kommentar


            • #7
              Ich meine, eine Tabelle nach dem Datum ordnen zu können...

              Man könnte ja eine einfache Schachtelung vornehmen und das Datum, den Monat und das Jahr in verschiedene Spalten packen aber... nunja.. wäre Mist... welche gute Methode gibts denn?
              "Computers in the future may weigh no more than 1.5 tons."
              - Popular Mechanics magazine
              1949

              Kommentar


              • #8
                OK, ich mache das wie folgt.
                In meiner Tabelle verwende ich, wenn es nur ein Datum ist das Feld "date". Der Defaultwert sieht so aus 0000-00-00 (JJJJ-MM-TT).

                Wenn du etwas in die Datenbank einträgst brauchst du nur das Datum und das ist ja leicht. Also schreibst du z. B. 20011212 in die Datenbank rein. Also das Datum immer verker rum in die Datenbank eintrage. Erst das Jaht (4-stellig) dann der Monat (2-stellig) und dann der Tag (2-stellig).

                In deinem query kannst du jetzt ganz bequem die Ergebnismenge auch nach dem Datum sortieren.

                Gibst du das Datum ohne formatierung aus, sieht es so aus:

                2001-12-12

                Um das ganz dann richtig zu formatieren, ist ja dann kein Problem mehr.




                Ob das die beste Möglichkeit ist weiss ich nicht, aber die funktioniert und das ziemlich gut.

                Ans Ziel kommt nur der, der auch eins hat. www.e-cross.info

                Kommentar


                • #9
                  ? Ich verstehe das Problem nicht so ganz ?

                  Wieso nicht timestamp?

                  CAT Music Files

                  Kommentar


                  • #10
                    ... weil das viel zu einfach wäre?
                    "Computers in the future may weigh no more than 1.5 tons."
                    - Popular Mechanics magazine
                    1949

                    Kommentar


                    • #11
                      Eigentlich ist das Problem ja richtig simpel.

                      In der Datenbank stehen folgende Werte drinnen und nach einer Sortierung nach dem Datum kommt das raus:

                      11.12.2001
                      12.12.2002
                      13.12.2001

                      Es sollte aber das rauskommen:

                      11.12.2001
                      13.12.2001
                      12.12.2002

                      Und das Problem ist do simpel. Man sollte das Datum einfach nur anders rum reinschreiben, so das in der Datenbank folgendes steht.

                      2001-12-11
                      2002-12-12
                      2001-12-13

                      Sind die Daten so vorhande, klappt es auch mit der sortierung.
                      Ans Ziel kommt nur der, der auch eins hat. www.e-cross.info

                      Kommentar


                      • #12
                        Oder einfach die Spaltentypen nehmen, die auch für sowas vorgesehen sind...

                        CAT Music Files

                        Kommentar


                        • #13
                          Was bitte meinst du den mit Spaltentypen?

                          Ist date denn keine geeigneter Feldtyp??
                          Ans Ziel kommt nur der, der auch eins hat. www.e-cross.info

                          Kommentar


                          • #14
                            Doch, aber ein Stringfeld nicht... Siehe oben.

                            CAT Music Files

                            Kommentar


                            • #15
                              Achso, ok.

                              Dann ist ja alles klar :-)
                              Ans Ziel kommt nur der, der auch eins hat. www.e-cross.info

                              Kommentar

                              Lädt...
                              X