384 MySQL - Technische Referenz f¨ur Version 5.0.1-alpha
m¨ussen in der Reihenfolge Jahr - Monat - Tag gemacht werden (zum Beispiel ’98-09-
04’) statt in der Reihenfolge Monat - Tag - Jahr oder Tag - Monat - Jahr, die anderswo
h¨aufig gebraucht werden (zum Beispiel ’09-04-98’, ’04-09-98’).
• MySQL wandelt einen Datums- oder Zeitwert automatisch in eine Zahl um, wenn der
Wert in einem numerischen Zusammenhang benutzt wird, und umgekehrt.
• Wenn MySQL auf einen Datums- oder Zeitwert trifft, der ausserhalb des Wertebereichs
oder in sonstiger Weise f¨ur den Typ nicht zul¨assig ist (siehe Anfang dieses Abschnitts),
wird der Wert zum “0”-Wert dieses Typs umgewandelt. (Die Ausnahme ist, dass
TIME-Werte ausserhalb des Wertebereichs auf den entsprechenden Endpunkt des TIME-
Wertebereichs a/jointfilesconvert/293675/bgeschnitten werden.) Die unten stehende Tabelle zeigt das Format
des “0”-Werts f¨ur jeden Typ:
Spaltentyp “0”-Wert
DATETIME ’0000-00-00 00:00:00’
DATE ’0000-00-00’
TIMESTAMP 00000000000000 (L¨ange abh¨angig von der Anzeigebreite)
TIME ’00:00:00’
YEAR 0000
• Die “0”-Werte sind speziell, aber Sie k¨onnen diese explizit speichern oder auf sie ver-
weisen, indem Sie die in der Tabelle dargestellten Werte benutzen. Sie k¨onnen das auch
mit den Werten ’0’ oder 0 machen, die leichter zu schreiben sind.
• “0”-Datums- o der -Zeitwerte, die ¨uber MyODBC benutzt werden, werden in MyODBC-
Version 2.50.12 und h¨oher automatisch in NULL umgewandelt, weil ODBC solche Werte
nicht handhaben kann.
7.2.2.1 Jahr-2000-Probleme und Datumstypen
MySQL selbst ist Jahr-2000-konform (Jahr-2000-sicher, siehe Abschnitt 2.2.4 [Year 2000
compliance], Seite 12), ab er Eingabewerte, die an MySQL ¨ubergeben werden, sind das
m¨oglicherweise nicht. Jede Eingabe von Jahreswerten mit 2 Ziffern ist mehrdeutig, weil das
Jahrhundert unbekannt ist. Solche Werte m¨ussen in 4-stellige Form umgedeutet werden,
weil MySQL Jahre intern mit 4 Ziffern speichert.
Bei DATETIME-, DATE-, TIMESTAMP- und YEAR-Typen interpretiert MySQL Datumsangaben
mit mehrdeutigen Jahreswerten nach folgenden Regeln:
• Jahreswerte im Bereich 00 bis 69 werden in 2000 bis 2069 umgewandelt.
• Jahreswerte im Bereich 70 bis 99 werden in 1970 bis 1999 umgewandelt.
Denken Sie daran, dass diese Regeln nur eine vern¨unftige Sch¨atzung dessen bedeuten, was
die Daten tats¨achlich darstellen sollen. Wenn die von MySQL benutzten Heuristiken keine
korrekten Werte ergeben, m¨ussen Sie eindeutige Eingaben in Form 4-stelliger Jahreswerte
bereit stellen.
ORDER BY sortiert 2-stellige YEAR/DATE/DATETIME-Typ en korrekt.
Beachten Sie, dass einige Funktionen wie MIN() und MAX() ein TIMESTAMP / DATE in eine
Zahl umwandeln. Das heißt, dass ein Zeitstempel mit einer 2-stelligen Jahresangabe bei
diesen Funktionen nicht korrekt funktioniert. Das kann in diesem Fall dadurch behoben
werden, dass der TIMESTAMP / DATE in ein 4-stelliges Jahresformat umgewandelt wird, oder
etwas wie MIN(DATE_ADD(zeitstempel,INTERVAL 0 DAYS)) benutzt wird.
Kommentare zu diesen Handbüchern