zurück zur Startseite
  


Zurück XHTMLforum > Webentwicklung (außer XHTML und CSS) > Serveradministration und serverseitige Scripte
Seite neu laden Welches Datumsformat für DB

Antwort
 
LinkBack Themen-Optionen Ansicht
  #1 (permalink)  
Alt 28.05.2010, 22:00
b74 b74 ist offline
Erfahrener Benutzer
XHTMLforum-Mitglied
Thread-Ersteller
 
Registriert seit: 15.04.2008
Ort: Potsdam
Beiträge: 179
b74 befindet sich auf einem aufstrebenden Ast
Standard 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.
Mit Zitat antworten
Sponsored Links
  #2 (permalink)  
Alt 29.05.2010, 03:08
Benutzerbild von inta
free as in freedom
XHTMLforum-Kenner
 
Registriert seit: 04.12.2006
Ort: Berlin
Beiträge: 5.024
inta kann auf vieles stolz seininta kann auf vieles stolz seininta kann auf vieles stolz seininta kann auf vieles stolz seininta kann auf vieles stolz seininta kann auf vieles stolz seininta kann auf vieles stolz seininta kann auf vieles stolz seininta kann auf vieles stolz sein
Standard

Schau mal bei den Datentypen des DBMS deiner Wahl nach Timestamp oder Date(time). Beide speichern Daten im Format "YYYY-MM-DD HH:MM:SS", ersteres als GMT (die entsprechende Zeitzone wird erst beim Auslesen berücksichtigt), zweiteres so wie du es angibst.
Mit Zitat antworten
Sponsored Links
  #3 (permalink)  
Alt 31.05.2010, 18:53
Benutzerbild von protonenbeschleuniger
Verbesserer
XHTMLforum-Kenner
 
Registriert seit: 06.09.2007
Beiträge: 4.942
protonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblick
Standard

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
Mit Zitat antworten
  #4 (permalink)  
Alt 31.05.2010, 20:11
Benutzerbild von inta
free as in freedom
XHTMLforum-Kenner
 
Registriert seit: 04.12.2006
Ort: Berlin
Beiträge: 5.024
inta kann auf vieles stolz seininta kann auf vieles stolz seininta kann auf vieles stolz seininta kann auf vieles stolz seininta kann auf vieles stolz seininta kann auf vieles stolz seininta kann auf vieles stolz seininta kann auf vieles stolz seininta kann auf vieles stolz sein
Standard

Da wir nicht wissen zu welchem Zweck er ein Datum speichern will, kann man das abschließend so nicht sagen. Wenn die Uhrzeit keine Rolle spielt, dann wäre Date das passendere Format.
Mit Zitat antworten
  #5 (permalink)  
Alt 31.05.2010, 22:17
Benutzerbild von Praktikant
Semantikbremse.
XHTMLforum-Kenner
 
Registriert seit: 22.04.2008
Beiträge: 4.990
Praktikant kann auf vieles stolz seinPraktikant kann auf vieles stolz seinPraktikant kann auf vieles stolz seinPraktikant kann auf vieles stolz seinPraktikant kann auf vieles stolz seinPraktikant kann auf vieles stolz seinPraktikant kann auf vieles stolz seinPraktikant kann auf vieles stolz seinPraktikant kann auf vieles stolz sein
Standard

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!
Mit Zitat antworten
  #6 (permalink)  
Alt 31.05.2010, 22:50
Benutzerbild von Scheppertreiber
Chaot und Nonkonformist.
XHTMLforum-Kenner
 
Registriert seit: 13.03.2007
Ort: Steinmark im Spessart
Beiträge: 7.457
Scheppertreiber ist ein LichtblickScheppertreiber ist ein LichtblickScheppertreiber ist ein LichtblickScheppertreiber ist ein LichtblickScheppertreiber ist ein Lichtblick
Standard

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"
__________________
Grüße aus dem Spessart, Joe

{ table-layout: biertischistbesser; }
Der Mausinator
Mit Zitat antworten
  #7 (permalink)  
Alt 31.05.2010, 23:12
Benutzer
neuer user
 
Registriert seit: 26.09.2008
Beiträge: 36
False Mirror befindet sich auf einem aufstrebenden Ast
Standard

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.
Mit Zitat antworten
  #8 (permalink)  
Alt 01.06.2010, 12:22
Benutzerbild von Boris
Tanzender Webentwickler
XHTMLforum-Kenner
 
Registriert seit: 29.07.2004
Ort: Kornwestheim / Stuttgart
Beiträge: 4.930
Boris ist ein sehr geschätzer MenschBoris ist ein sehr geschätzer MenschBoris ist ein sehr geschätzer Mensch
Standard

Zitat:
Zitat von False Mirror Beitrag anzeigen
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.
Dadurch sind aber Datumsberechnungen via SQL nicht mehr möglich. Ich speichere es immer als DATETIME und wenn die Uhrzeit nicht nötig ist, nur DATE.

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
Mit Zitat antworten
  #9 (permalink)  
Alt 01.06.2010, 12:30
Benutzerbild von Scheppertreiber
Chaot und Nonkonformist.
XHTMLforum-Kenner
 
Registriert seit: 13.03.2007
Ort: Steinmark im Spessart
Beiträge: 7.457
Scheppertreiber ist ein LichtblickScheppertreiber ist ein LichtblickScheppertreiber ist ein LichtblickScheppertreiber ist ein LichtblickScheppertreiber ist ein Lichtblick
Standard

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.
__________________
Grüße aus dem Spessart, Joe

{ table-layout: biertischistbesser; }
Der Mausinator
Mit Zitat antworten
Sponsored Links
  #10 (permalink)  
Alt 01.06.2010, 12:42
Benutzerbild von protonenbeschleuniger
Verbesserer
XHTMLforum-Kenner
 
Registriert seit: 06.09.2007
Beiträge: 4.942
protonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblick
Standard

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.
Mit Zitat antworten
Sponsored Links
Antwort

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus


Ä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


Alle Zeitangaben in WEZ +2. Es ist jetzt 23:16 Uhr.