2-fach sortieren bei mySQL

dir ist wohl nicht bewußt was timestamp ist oder?
Timestamp ist nicht dies: 0000-00-00 00:00, hierbei handelt es sich um datetime....
Timestamp anzahl an Sekunden seid 1970.

date = 0000-00-00
datetime = 0000-00-00 00:00
timestamp oder unix_timestamp = anzahl an Sekunden seid 1970.


Dort sollte es dann auch keine Probleme geben beim sortieren von nummersichenwerten...
Doch, mir ist durchaus bewußt, was ein Timestamp ist. Sonst würde ich nicht damit arbeiten ;)
Mein Problem ist nur, dass wenn ich bei zB phpmyadmin den Datentyp auf "timestamp" setze, das datetime-Format da stehen hab. Entweder hab ich eine Einstellung übersehen, oder generell was falsch gemacht.

Ich verstehe nur nicht wieso du hiermit meinst: "Das Problem ist wohl, dass ich den Timestamp in Datum und Uhrzeit aufsplitte, oder?"
Es existieren 2 felder in der tabelle?
Oder du wandelst in der abfrage via date_format(datum , ...) as datum, date_format(datum, ...) as uhrzeit das feld um?
Nein, es existiert nur ein Feld - das mit dem UNIX-Timestamp. Vergiß den Teil meines Textes einfach wieder ;)

EDIT: Habe mal 2 Screens angehängt. So sieht es bei mir immer aus, wenn ich TIMESTAMP wähle... Was mache ich falsch?
 

Anhänge

  • feldanlegen.jpg
    feldanlegen.jpg
    35,2 KB · Aufrufe: 14
  • feldansicht.jpg
    feldansicht.jpg
    8,3 KB · Aufrufe: 27
Zuletzt bearbeitet:
Ich würde mal sagen, das feld war zuvor datetime.
Dann sind die werte eingetragen worden.
Und darauf hast du es von datetime in timestamp umgewandelt.
Die inhaltet bleiben aber im gleichen format in der tabelle vorhanden, wie zuvor eingetragen...
 
Ich würde mal sagen, das feld war zuvor datetime.
Dann sind die werte eingetragen worden.
Und darauf hast du es von datetime in timestamp umgewandelt.
Die inhaltet bleiben aber im gleichen format in der tabelle vorhanden, wie zuvor eingetragen...

Du wirst lachen, aber ich hab die Test-Datenbank extra für die Screens angelegt...
 
Hi,

dir ist wohl nicht bewußt was timestamp ist oder?
Timestamp ist nicht dies: 0000-00-00 00:00

Aus der Doku:
Ein TIMESTAMP-Wert wird als String im Format 'YYYY-MM-DD HH:MM:SS' zurückgegeben, dessen Anzeigebreite auf 19 Zeichen festgelegt ist. Um den Wert als Zahl zu erhalten, sollten Sie +0 zur Zeitstempelspalte hinzufügen.

Wenn ich das richtig sehe, ist das hier aber eher ein Logik-Problem. Ich denke mal, das soll 3-fach, nicht 2-fach sortiert werden, erst nach Datum, dann nach Benutzernamen und dann nach Uhrzeit. Mit den Datums- und Zeitfunktionen kann man Datum und Uhrzeit extrahieren.

LG
 
Ganz ehrlich?
Ich lass das nun als Integer und find mich damit ab, dass ich es über Umwege löse.

Trotzdem danke für Eure Bemühungen :)
 
Hi,

so schnell gibst Du auf? :p

Wie sieht's denn so aus:

SQL:
ORDER BY 
   DATE(FROM_UNIXTIME(termin_timestamp)) ASC, 
   user_name DESC, 
   TIME(FROM_UNIXTIME(termin_timestamp)) ASC

LG
 
Zuletzt bearbeitet von einem Moderator:
Kann schlecht eine Unix-Time aus einer DB lesen, in die ich keinen Unix-Timestamp schreiben kann. DAS ist ja mein Problem :(
 
Hi,

natürlich kannst Du einen UNIX-Timestamp in eine DB schreiben. Ich dachte, das ist genau das, was Du tust, einen UNIX-Timestamp in eine Integer-Spalte schreiben. Wenn nicht, wie speicherst Du es denn nun?

LG
 

Neue Beiträge

Zurück