1. Dashboard
  2. Forum
    1. Unerledigte Themen
  3. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team-Mitglieder
    4. Trophäen
    5. Mitgliedersuche
  4. Tutorial Bereich
  • Anmelden
  • Registrieren
  • Suche
Dieses Thema
  • Alles
  • Dieses Thema
  • Dieses Forum
  • Seiten
  • Forum
  • Lexikon
  • Erweiterte Suche
  1. Informatik Forum
  2. Webmaster & Internet
  3. Entwicklung

Datum sortieren :-|

  • owaye
  • 13. September 2006 um 22:07
  • Unerledigt
  • owaye
    6
    owaye
    Mitglied
    Reaktionen
    3
    Punkte
    313
    Beiträge
    46
    • 13. September 2006 um 22:07
    • #1

    hi! hab ein kleines problem bei einem php guestbook:

    also zur erklärung: ich will die einträge im guestbook nach datum aufsteigend oder absteigend sortieren können auf der homepage. alle felder werden also per variable in die mysql datenbank geschickt und von dort wieder ausgelesen. jedesmal, wenn jemand den "submit" button drückt, wird ein timestamp dazugeschickt, der ebenfalls in der datenbank eine spalte ausmacht. das funktioniert auch.

    problem an sich: wenn ich in 1er minute mehrere einträge mache und dann absteigend sortiere, also d.h. der neueste eintrag (von hallo1 beginnend) ist ganz oben wie:


    eintrag um 15:02 Uhr: "hallo2"
    eintrag um 15:02 Uhr: "hallo1" <= das müsste ganz oben sein
    eintrag um 15:02 Uhr: "hallo3"
    eintrag um 15:01 Uhr: "hallo4"
    eintrag um 15:01 Uhr: "hallo5"
    eintrag um 15:01 Uhr: "hallo6"

    oder liegt das problem daran, dass ich
    1. den datentyp von datum+uhrzeit in der datenbankspalte nicht als "date" bezeichnet hab, sondern als character?
    2. oder war meine abfolge des testens und eintippens zu schnell, dass die datenbank probleme hatte?

  • Paulchen
    1
    Paulchen
    Gast
    • 13. September 2006 um 22:33
    • #2

    Verstehe nicht ganz... du speicherst nur auf Minuten genau? Wie willst du da eine eindeutige chronologische Reihung festlegen? :confused:

  • mnemetz
    17
    mnemetz
    Mitglied
    Punkte
    2.895
    Beiträge
    557
    • 13. September 2006 um 22:39
    • #3

    sag wie soll geordnet werden bei drei mal 15:02 ? was ist das kriterium? (ist bei ORDER BY eine zweite spalte angegeben?)

    http://www.wikiserver.at
    http://www.1000schoen.at/mnemetz/wiki/Hauptseite
    http://www.informatik-forum.at/showpost.php?p=503070&postcount=55

  • Neo_II
    7
    Neo_II
    Mitglied
    Punkte
    505
    Beiträge
    90
    • 13. September 2006 um 22:52
    • #4

    versuchs mal mit DATE anstatt CHAR. ich denke dass das DATE sekundengenaue informationen speichert.

    former: projektmanagement, it-strategie, multimedia production, audio/video production, risikomanagement | tutor
    mail: mario[at]habenbacher[dot]at | web: http://www.habenbacher.at</u></a><u></u>

  • owaye
    6
    owaye
    Mitglied
    Reaktionen
    3
    Punkte
    313
    Beiträge
    46
    • 13. September 2006 um 22:59
    • #5

    @Paulchen: oke, ich habs jetzt auf sekunde eingestellt. vorerst scheint alles zu stimmen. jetzt hab ich ein anderes problem aber: sobald ich einstelle im computer das datum: 1-7-2007 komm der nächste eintrag vom guestbook unterhalb von 13-9-2006 rein. dabei sollte das doch oben sein :frowning_face:


    Neo_II: jo das hab ich versucht. wenn ich den datentyp "date" verwende in mysql krieg ich nur als ausgabe "0000-00-00". nicht mal die form 00-00-0000 also tag/monat/jahr... sondern nur der standard fehler :frowning_face:

    edit: wobei: ...äh, ah jetzt verstehe ich, warum das standardmässig mit YYYY-MM-DD eingestellt ist weil da würd 2007 vor 2006 kommen... weil der liest das wohl als ganze zahl z.b. bei 1-7-2007 wäre wohl 01072007 und mein datum wäre oben gewesen 13092006, was logischerweise größer ist als das von 2007

    => richtig wäre dann wohl (sowie die standarform 0000-00-00):
    2007-07-01
    2006-09-13

    denk ich mal so, ohne es ausprobiert zu haben^^, oder?


    edit2: für alle dies interessiert noch:
    wenn ich DATE als datentyp verwende, wird einfach die uhrzeit abgeschnitten beim rauslesen oder einspeichern (keine AHnung, ich hab gedacht es seien 19 characters erlaubt bei der datum+uhrzeit, aber die uhrzeit hab ich überhaupt gar nicht angezeigt bekommen beim rauslesen) und er sortiert wieder falsch. ich habs jetzt bei character als datentyp belassen und Y-m-d und H:i:s genommen. das schreibt jetzt alles richtig geordnet hin, also jeden eintrag, auch die vom nächsten jahr. brauch ich nur noch die struktur von Y-m-d zu haxorn.... dass ich das in die passende form krieg.

    ... und wahrscheinlich gäbs einen viel einfacheren weg das zu beheben O_o

  • max_rayman
    9
    max_rayman
    Mitglied
    Reaktionen
    17
    Punkte
    887
    Beiträge
    169
    • 14. September 2006 um 07:31
    • #6

    ...äh, ah jetzt verstehe ich, warum das standardmässig mit YYYY-MM-DD eingestellt ist weil da würd 2007 vor 2006 kommen... weil der liest das wohl als ...

    Ich glaube nicht dass hier das englische Datumsformat, aus gründen der sortierreihenfolge gewählt wurde, sondern eher, weil dies einem GNU Datum entspricht, das einen Standard darstellt.
    Ich weis nicht ob man nicht das Datum Datenbankweit auf deutsches bzw. auch amerikanisches Ein/Ausgabe Format ändern kann, in Portgres ist das möglich (am besten Doku lesen).

    Falls das ändern der DB Config nicht möglich ist, musst halt einfach auf '-' oder was auch immer splitten und dir das DD.MM.YY selbst zusammenbaun (sowohl bei der eingabe als auch bei der ausgabe).


    ... wenn ich DATE als datentyp verwende, wird einfach die uhrzeit abgeschnitten beim rauslesen oder einspeichern ...

    Ich würd mal DATETIME verwenden dann hast du die Uhrzeit auch dabei.
    Lies einfach die Doku zu deiner Datenbank zum Punkt Datums und Zeiformate, da wirst du sicher alles finden was du wissen willst :winking_face:

    -lg

  • Ekimus
    10
    Ekimus
    Mitglied
    Punkte
    1.090
    Beiträge
    174
    • 15. September 2006 um 23:52
    • #7
    Zitat von owaye

    hi! hab ein kleines problem bei einem php guestbook:

    also zur erklärung: ich will die einträge im guestbook nach datum aufsteigend oder absteigend sortieren können auf der homepage.

    Ich würde sagen das in 99.9% der Fälle das DBMS schlauer und schneller ist als bei einer eigenen implementierung wenns um sortieren geht, von daher als typ timestamp/date (was du am sql server halt am liebsten verwendest bzw. was er halt zur verfügung hat - ich nehm mysql eigentlich nie) nehmen und ORDER BY verwenden....

    Martin Marcher
    [FONT=arial, helvetica, sans-serif]Immersive Consultant
    [/FONT]
    http://martinmarcher.com
    Mobile/Cell: +43 / 660 / 62 45 103
    http://www.linkedin.com/in/martinmarcher
    UID: ATU68801424

  • Maximilian Rupp 27. Dezember 2024 um 12:05

    Hat das Thema aus dem Forum Programmieren nach Entwicklung verschoben.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!

Benutzerkonto erstellen Anmelden

Rechtliches

Impressum

Datenschutzerklärung