Kapitel 7: MySQL-Sprachreferenz 385
7.2.2.2 Die DATETIME-, DATE- und TIMESTAMP-Typen
Die DATETIME-, DATE- und TIMESTAMP-Typen sind verwandt. Dieser Abschnitt beschreibt
ihre Charakteristiken, wo sie sich ¨ahnlich sind und wo sie sich unterscheiden.
Der DATETIME-Typ wird benutzt, wenn Sie Werte brauchen, die sowohl Datums- als auch
Zeitinformationen beinhalten. MySQL ruft DATETIME-Werte ab und zeigt sie an im ’YYYY-
MM-DD HH:MM:SS’-Format. Der unterst¨utzte Wertebereich ist ’1000-01-01 00:00:00’ bis
’9999-12-31 23:59:59’. (“Unterst¨utzt” heißt, dass fr ¨uhere Werte zwar funktionieren
k¨onnen, dass es aber keine Garantie daf¨ur gibt.)
Der DATE-Typ wird benutzt, wenn Sie nur einen Datumswert brauchen, ohne Zeitanteil.
MySQL ruft DATE-Werte ab und zeigt sie an im ’YYYY-MM-DD’-Format. Der unterst¨utzte
Wertebereich ist ’1000-01-01’ bis ’9999-12-31’.
Der TIMESTAMP-Typ ist ein Typ, den Sie daf¨ur benutzen k¨onnen, um INSERT- oder UPDATE-
Operationen mit dem aktuellen Datum und der aktuellen Zeit zu stempeln. Wenn Sie
mehrfache TIMESTAMP-Spalten haben, wird nur die erste automatisch aktualisiert.
Die automatische Aktualisierung der TIMESTAMP-Spalte geschieht unter einer der folgenden
Bedingungen:
• Die Spalte wird in einem INSERT- oder LOAD DATA INFILE-Statement nicht explizit
angegeben.
• Die Spalte wird in einem UPDATE-Statement nicht explizit angegeben, aber ein anderer
Spaltenwert ¨andert sich. (Beachten Sie, dass ein UPDATE, das eine Spalte auf einen
Wert setzt, den diese bereits hat, nicht dazu f¨uhrt, dass die TIMESTAMP-Spalte aktual-
isiert wird, weil MySQL das Aktualisieren in einem solchen Fall auf Effizienzgr¨unden
ignoriert.)
• Wenn Sie die TIMESTAMP-Spalte explizit auf NULL setzen.
TIMESTAMP-Spalten a/jointfilesconvert/293675/bgesehen von der ersten k¨onnen ebenfalls auf das aktuelle Datum und
die aktuelle Zeit gesetzt werden. Setzen Sie die Spalte einfach auf NULL oder auf NOW().
Sie k¨onnen jede TIMESTAMP-Spalte auf einen Wert setzen, der vom aktuellen Datum und
der aktuellen Zeit abweicht, indem Sie sie explizit auf den gew¨unschten Wert setzen. Das
gilt sogar f¨ur die erste TIMESTAMP-Spalte. Sie k¨onnen diese Eigenschaft benutzen, wenn Sie
einen TIMESTAMP auf das aktuelle Datum und die aktuelle Zeit setzen wollen, wenn Sie eine
Zeile erzeugen, nicht aber, wenn die Zeile sp¨ater aktualisiert wird:
• Lassen Sie MySQL die Spalte setzen, wenn die Zeile erzeugt wird. Das initialisiert sie
auf das aktuelle Datum und die aktuelle Zeit.
• Wenn Sie nachfolgende Aktualisierungen anderer Spalten in der Zeile durchf¨uhren,
setzen Sie die TIMESTAMP-Spalte explizit auf ihren aktuellen Wert.
Auf der anderen Seite finden Sie vielleicht mindestens so einfach, eine DATETIME-Spalte
zu benutzen, die Sie auf NOW() initialisieren, wenn die Zeile erzeugt wird, und die Sie bei
nachfolgenden Aktualisierungen nicht anfassen.
TIMESTAMP-Werte haben einen Wertebereich von 1970 bis irgendwann im Jahr 2037, bei
einer Au߬osung von einer Sekunde. Werte werden als Zahlen angezeigt.
Das Format, in dem MySQL TIMESTAMP-Werte abruft und anzeigt, h¨angt von der Anzeige-
breite ab, wie in der obigen Tabelle dargestellt. Das ‘volle’ TIMESTAMP-Format ist 14 Ziffern,
aber TIMESTAMP-Spalten k¨onnen mit k¨urzeren Anzeigebreiten angelegt werden:
Comentarios a estos manuales