Abruf und Anzeige von TIME
-Werten durch MySQL
erfolgen im Format 'HH:MM:SS'
(oder im Format
'HHH:MM:SS'
bei einer großen Zahl von
Stunden). TIME
-Werte liegen in einem Bereich
zwischen '-838:59:59'
und
'838:59:59'
. Der Stundenteil kann so groß
sein, weil TIME
nicht nur eine Uhrzeit
darstellen kann (diese muss kleiner sein als 24 Stunden),
sondern auch die verstrichene Zeit oder ein Zeitintervall
zwischen zwei Ereignissen. Ein solches Intervall kann wesentlich
länger als 24 Stunden oder sogar negativ sein.
Zur Angabe von TIME
-Werten steht eine
Vielzahl von Formaten zur Verfügung:
Als String im Format 'D
HH:MM:SS.fraction'
. Sie können auch eines der
folgenden weniger stringenten Syntaxformate verwenden:
'HH:MM:SS.fraction'
,
'HH:MM:SS'
, 'HH:MM'
,
'D HH:MM:SS'
, 'D
HH:MM'
, 'D HH'
oder
'SS'
. Hierbei steht D
für Tage und kann einen Wert zwischen 0 und 34 haben.
Beachten Sie, dass MySQL den Bruchteil
(fraction
) nicht speichert.
Als String ohne Trennzeichen im Format
'HHMMSS'
, sofern er als Zeitangabe
sinngebend ist. Zum Beispiel wird
'101112'
als
'10:11:12'
interpretiert, aber
'109712'
ist unzulässig (der
Minutenanteil ist unsinnig) und wird deswegen zu
'00:00:00'
.
Als Zahl im Format HHMMSS
, sofern er als
Zeitangabe sinngebend ist. So wird etwa
101112
als '10:11:12'
interpretiert. Die folgenden alternativen Formate werden
ebenfalls verstanden: SS
,
MMSS
, HHMMSS
,
HHMMSS.fraction
. Beachten Sie, dass MySQL
den Bruchteil nicht speichert.
Als Ergebnis einer Funktion, die einen Wert zurückgibt, der
im Kontext von TIME
sinngebend ist,
z. B. CURRENT_TIME
.
Bei als String angegebenen TIME
-Werten, die
Trennzeichen für Uhrzeitbestandteile enthalten, ist es nicht
erforderlich, zwei Stellen für Stunden-, Minuten oder
Sekundenwerte anzugeben, die kleiner als 10
sind: '8:3:2'
ist das Gleiche wie
'08:03:02'
.
Seien Sie vorsichtig bei der Zuweisung abgekürzter Werte zu
einer TIME
-Spalte. Ohne Doppelpunkte
interpretiert MySQL die Werte in der Annahme, dass die beiden
ganz rechts stehenden Stellen die Sekunden angeben. (MySQL
interpretiert TIME
-Werte nicht als Uhrzeit,
sondern als verstrichene Zeit.) So könnte man etwa annehmen,
dass '1112'
und 1112
die
Bedeutung '11:12:00'
(also 12 Minuten nach 11
Uhr) hätten; MySQL liest die Angabe jedoch als
'00:11:12'
(also 11 Minuten und 12 Sekunden).
Ähnlich werden '12'
und
12
als '00:00:12'
interpretiert. TIME
-Werte mit Doppelpunkten
hingegen werden immer als Uhrzeit betrachtet:
'11:12'
bedeutet also
'11:12:00'
und nicht
'00:11:12'
.
Standardmäßig werden Werte, die außerhalb des für
TIME
zulässigen Bereichs liegen, aber
ansonsten zulässig sind, auf den nächstgelegenen Endpunkt des
Bereichs gesetzt. Beispielsweise werden
'-850:00:00'
und
'850:00:00'
zu
'-838:59:59'
bzw.
'838:59:59'
konvertiert. Unzulässige
TIME
-Werte werden zu
'00:00:00'
konvertiert. Beachten Sie, dass
es, weil '00:00:00'
selbst ein zulässiger
TIME
-Wert ist, keine Möglichkeit gibt,
festzustellen, ob ein in der Tabelle gespeicherter Wert
'00:00:00'
als '00:00:00'
oder als unzulässiger Wert angegeben wurde.
Zur restriktiveren Behandlung ungültiger
TIME
-Werte aktivieren Sie den strikten
SQL-Modus. In diesem Fall werden Fehler ausgegeben. Siehe auch
Abschnitt 5.2.5, „Der SQL-Modus des Servers“.
Dies ist eine Übersetzung des MySQL-Referenzhandbuchs, das sich auf dev.mysql.com befindet. Das ursprüngliche Referenzhandbuch ist auf Englisch, und diese Übersetzung ist nicht notwendigerweise so aktuell wie die englische Ausgabe. Das vorliegende deutschsprachige Handbuch behandelt MySQL bis zur Version 5.1.