Zeit in Datenbank speichern

oconner

Aktives Mitglied
Thread Starter
Dabei seit
11.01.2006
Beiträge
281
Reaktionspunkte
0
Hallo,

ich möchte in einer meiner Tabellen auch eine Zeit speichern, so das ich so zu sagen bei einer Anfrage die Daten die am Neuesten oder am ältesten sind.

Wie stelle ich das am besten an?

eingetragen wird per Formular d.h. php soll ich nun immer eine richtige Zeit oder eine Unix Zeit hinein speichern?

danke fuer jede hilfe.:)
 
Irgendwie fehlen hier ein paar Informationen - welche Datenbank denn?
 
na das ist ja egal...

ich meine mit "auch" das ich bei mir in meiner Server Datenbank in einer Tabelle die Werte speichert auch eine Spalte habe die die Zeit des jeweiligen Wertes der in der gleichen Zeile liegt speichern soll. Also so das ich eine MySQL Abfrage nach neuen oder aelteren Eintraegen machen kann.

(sorry falls ich das wohl etwas ungenau ausdrueke)
 
Was ist denn nu die Frage? :)
Timestamp oder richtige Uhrzeit ist geschmackssache
 
na ich weis eben nicht ob ich die richtige Zeit in der Tabelle speichern soll, damit ich auch eine Abfrage nach neuem oder alten machen kann.

Ich will quasi so wie z.b. hier im Forum das letze Thema auf der letzen Seite ist und das neueste auf der ersten ganz oben. Um dies machen zu koennen muss ich ja eine Zeit speichern damit ich bei meinem code sagen kann das der code ORDER BY DESC `time` (oder irgendwie so) machen kann.
 
Also in den Threads hier wird nicht mit Timestamps sondern mit Postcounts gearbeitet... Also der erste bekommt die id1, der 2. die id2 usw
 
ja...

aber es wird trotzdem eine Zeit mit gespeichert oder?

zumindes ist es bei phpbb so wies bei vBulletin ist weis ich nicht.

Auf jeden Fall möchte ich dann eine Abfrage machen können die durch eine Spalte namens time (o.ä.) geordnet wird.

so wie man eben auch eine abfrage nach der neuesten Id oder der aeltesten machen kann. (also sortiert)
 
Da das Datum und die Uhrzeit an den Beitragen steht, wird das wohl auch gespeichert werden ;) Trotzdem wird die Reihenfolge in den Threads anhand der Postcounts bestimmt.

Dann nimm doch nen Timestamp und sortier den... der zählt ja nur hoch und ist ne Zahl
 
na das ist eben meine doofe frage

wie sortier ich den?

mir ist klar das die Zahl immer hoeher wird, aber wie mache ich die abfrage in diesem Falle?
 
Da der Timestamp immer höher wird, je weiter die Zeit vergeht, müsste die Abfrage folgendermaßen aussehen:
PHP:
"SELECT * FROM tabelle ORDER BY zeitfeld ASC"
für jung nach alt, und
PHP:
"SELECT * FROM tabelle ORDER BY zeitfeld DESC"
von Alt nach Jung

Ich persönlich nehme immer die Timestams, da ich nciht so wirklich durch die Datum und Zeit-Funktionen von PHP durchblicke, und es mir logischer erscheint, eine eine Zahl zu speichern, als einen String, bei etwas, mit dem ich später rechnen will...
(Ich weiß, Datum ist kein String, aber es sind Bindestriche, und sowas drin, es ist keine Zahl...)


Oder hab ich die Frage jetzt nicht verstanden?

gruß
Lukas
 
haha :) die datum- und zeitfunktion von MySQL check ich auch nicht.
ich rufe immer die letzten X beiträge/einträge über die ID ab ... neuere einträge = höhere IDs !

SELECT * FROM tabelle ORDER BY id DESC LIMIT 0,X
(wobei X die anzahl der darzustellenden einträge ist.
 
@koli.bri dank! :)

genau das wollte ich

also steht DESC immer fuer das alte als neues und ASC immer fuer die sortierung der neuesten Beitraege, oder?
 
oconner schrieb:
also steht DESC immer fuer das alte als neues und ASC immer fuer die sortierung der neuesten Beitraege, oder?
Kenne mich mit MySQL nicht aus, aber "ASC" steht wohl fuer "ascending" (aufsteigend) und "DESC" fuer "descending" (absteigend).
 
DESC steht für Descending (Absteigend) 987654321 und ASC steht für Ascending (Aufsteigend) 123456789

EDIT: zu langsam
 
Genau, das ASC und DESC geben nur die Reihenfolge der Sortierung an.

Ich kann das auch in anderen Spalten(arten) benutzen.
ASC würde zum Beispiel dieses Ergebnis mit Zahlen liefern:
1,2,3,4,5,6,9
und mit Buchstaben:
a,b,g,i,m,n,z

Und DESC halt anders herum.
 
Nur mal so als Hinweis: Die Datenbank ist bei der Zeit nicht so egal. Denn wenn Du z.B. bei MySQL das native Zeit/Datumsformat verwendest, dann hast Du die Möglichkeit auch die entsprechend eingebauten, fertigen Funktionen zu verwenden.

Dies geht natürlich auch, wenn Du das UNIX-Timestamp verwendest. Aber dann muß halt jedes Mal eine Konvertierung vorgenommen werden. Dies bedeuted Resourcenverbrauch.

Pingu

EDIT: siehe hier: http://dev.mysql.com/doc/refman/5.1/de/date-and-time-functions.html
 
Zurück
Oben Unten