Ankündigung

Einklappen
Keine Ankündigung bisher.

[MySQL] Date('d-m-Y H:i:s') von DB korrekt in PHP sortieren lassen.

Einklappen

Neue Werbung 2019

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

  • [MySQL] Date('d-m-Y H:i:s') von DB korrekt in PHP sortieren lassen.

    Hi

    ich habe einige einträge in meiner Datenbank mit datum. Jedoch habe ich anscheinend nicht das korrekte Format genommen, denn ich kann das nicht 100%tig korrekt sortieren lassen.
    Ich habe auch gegoogelt, doch nicht wirklich exakt mein Problem gefunden.

    Ich benutze "date('d-m-Y H:i:s')" zum eintragen in die Datenbank, richtig wäre anscheinend aber wohl "date('Y-m-d H:i:s')".

    mit "SELECT name, ip, port FROM server WHERE game = 'Counter-Strike: Source' ORDER BY UNIX_TIMESTAMP(lastcheck) DESC LIMIT 5" funktioniert es halt nicht.

    Hat da jemand einen tipp?


    MfG
    Slluxx

  • rkr
    antwortet
    Zitat von poseidon29
    ich lasse immer den timstamp in die datenbank eintragen, also ds ergebnis von time(). Da das die sekunden seit 1970 sind, also ein integer, kannst du das auch unkompliziert sortieren lassen. ich schreibe meist nur in die Query
    ... ODER BY `time` DESC. Wenn du dann beispielsweise alle datensätze zwischen zwei timestamps suchst, kannst du sowas hier schrieben.
    WHERE `time`=$time2
    Deshalb nutze ich das immer. Vllt brauchst du diese Anwendung nicht, aber man weiß ja nie wo es hinführt das Projekt.
    Das ist aus drei Gründen eine schlechte Idee:

    - Du kannst die DateTime-Funktionen von MySQL dann nicht mehr verwenden.
    - Du hast (wie schon erwähnt) einen verhältnismäßig kleinen Zeitraum zur Darstellung deiner Zeit.
    - Du kannst diesen Wert dann selbst nicht mehr verstehen.

    Du kannst auf der anderen Seite aber alles mit DateTime machen, was du auch mit einem Timestamp machen könntest. Wirklich alles. Indizierung, manipulation, sorting, computation. Du gewinnst nichts, aber verlierst eine Menge.

    Einen Kommentar schreiben:


  • Kinger
    antwortet
    Ok, mag für deine Lösung reichen. Aber im Grunde machst du dein System nur unflexibel.Und du benutzt einen falschen Datentyp.

    Einen Kommentar schreiben:


  • slluxx
    antwortet
    Zitat von poseidon29 Beitrag anzeigen
    ich lasse immer den timstamp in die datenbank eintragen, also ds ergebnis von time().
    Das hab ich ausprobiert, bevor ich es hier gelesehen habe - und funktioniert einwandfrei!

    Da ich nicht vor 1970 gehen muss ist das auch eine schöne lösung für mich

    Einen Kommentar schreiben:


  • Kinger
    antwortet
    Und was machste bei Daten vor 1970?

    Einen Kommentar schreiben:


  • poseidon29
    antwortet
    ich lasse immer den timstamp in die datenbank eintragen, also ds ergebnis von time(). Da das die sekunden seit 1970 sind, also ein integer, kannst du das auch unkompliziert sortieren lassen. ich schreibe meist nur in die Query
    ... ODER BY `time` DESC. Wenn du dann beispielsweise alle datensätze zwischen zwei timestamps suchst, kannst du sowas hier schrieben.
    WHERE `time`<=$time AND `time`>=$time2
    Deshalb nutze ich das immer. Vllt brauchst du diese Anwendung nicht, aber man weiß ja nie wo es hinführt das Projekt.

    Einen Kommentar schreiben:


  • uha
    antwortet
    Du hast ein Datum mit Uhrzeit, also nutze, wie akretschmer schon erwähnt hat, den richtigen Datentyp! Datetime ist das, was du verwenden solltest

    Einen Kommentar schreiben:


  • Kinger
    antwortet
    Soweit ich weiß kannste den UNIX_TIMESTAMP dann auch weglassen.

    Einen Kommentar schreiben:


  • slluxx
    antwortet
    DH, wenn ich das richtige Date format angebe ( date('Y-m-d H:i:s') ) kann ich mit "UNIX_TIMESTAMP(lastcheck)" das auch richtig sortieren?

    oder muss ich in php zb datetime oder time() oder was anderes angeben?

    Einen Kommentar schreiben:


  • Kinger
    antwortet
    Formatiere deine Daten in der DB um. Sollten in der DB immer im Standartformat gespeichert werden. Umwandelt kannste dann im Business Logic Layer oder im Präsentation Layer.

    Einen Kommentar schreiben:


  • akretschmer
    antwortet
    Ja. Richtige Datentypen verwenden.

    Einen Kommentar schreiben:

Lädt...
X