|
|||
Welches Datumsformat für DB
Hallo,
wie speichert man am besten ein Datum in die DB? Gibt ja viele Varianten. 1. Timestamp => time() 2. Tag (Feld 1 in DB), Monat (Feld 2 in DB) und Jahr (Feld 3 in DB) 3. Als Datum direkt => 28.05.2010 Ich verwende Punkt 1, lese das aus und stelle das mit einer Funktion ins Deutsche Format. |
Sponsored Links |
Sponsored Links |
|
||||
timestamp ist für Felder, die Änderungen protokollieren sollen und ist eigentlich nicht gedacht um ein Datum abzuspeichern.
2 und 3 ist unsinnig, da du damit alle Möglichkeiten, die dir deine Datenbank zu Verfügung stellt verbaust. Daher: 4. Datetime Falls du von mysql sprichst: MySQL :: MySQL 5.1 Referenzhandbuch :: 11.3.1 Die DATETIME-, DATE- und TIMESTAMP-Typen |
|
||||
Ich habe letztens Datetime mit Timestamp genutzt um eine Art Nachrichtensystem zu erstellen, bei dem Nachrichten versendet werden, die nach dem senden nicht mehr geändert werden sollen/können. Das Datum wird dann ebenfalls wieder angegeben.
Klappt sehr einfach und zuverlässig mit SQL-Kompnenten
__________________
Rettet die Erde.... sie ist der einzige Planet mit Schokolade! |
|
||||
time() ist eine normale Integer (platzsparend), sie enthält den Unix-Timestamp
(Zeit ab Unix-Geburtstag 1.1.1970) und geht bis ca 2030 oder so. Es hängt vom Datumsbereich ab der gebraucht wird. Wenn man nicht an Datentypen klebt, ist die Sortierung bei der Speicherung a la SQL ("YYYY-MM-DD HH:MM:SS") ideal. Bei der Sortierung reicht dann ein einfacher Stringvergleich. time() ist natürlich beim Vergleich schneller wenn die DB mit binären Werten umgehen kann. Wenn's auf die Performance nicht ankommt: "YYYY-MM-DD HH:MM:SS" |
|
|||
Hängt wie bereits jmd schrieb ganz vom Anwendungsfall ab. Ich verfolge normalerweise das Ziel, die Datenbank-Einträge so allgemein wie möglich zu halten, um die Daten möglichst vielseitig verwendbar zu machen. Deshalb speichere ich in dem Fall meist den Unix-Timestamp.
|
|
||||
Zitat:
Wenn du nun unbedingt einen Unix-Timestamp brauchst, den kann dir MySQL dann auch liefern über SELECT UNIX_TIMESTAMP('deinfeld')
__________________
“My software never has bugs. It just develops random features ...” » DevShack - die Website des freien Webentwicklers Boris Bojic |
|
||||
Ich bin mir sicher, alle PHP und SQL-Zeitberechnungen laufen über den Timestamp.
Zur Zeitberechnung wird das in time umgewandelt, es rechnet, dann wieder zurück. s. strftime() etc. |
Sponsored Links |
|
||||
Gut das Wissen bringt aber nichts, wenn ich eine Abfrage wo ich eine Datumsfunktion benutze habe. Und strftime() brauch ich doch gar nicht, das macht DATE_FORMAT() ja schon bei der Abfrage.
|
Sponsored Links |
|
|
Ähnliche Themen | ||||
Thema | Autor | Forum | Antworten | Letzter Beitrag |
Falsches Datumsformat, aber nur im IE | Mugen87 | Javascript & Ajax | 9 | 04.03.2011 10:24 |
Frage zu deutschem Datumsformat | |SONY| | Serveradministration und serverseitige Scripte | 17 | 20.07.2009 01:26 |