MySQL lit et affiche les colonnes de type
TIME
au format 'HH:MM:SS'
(ou 'HHH:MM:SS'
pour les grandes quantités
d'heures). Les valeurs de TIME
vont de
'-838:59:59'
à
'838:59:59'
. La raison de cet intervalle de
validité si large est que les colonnes de type
TIME
peuvent être utilisés pour
représenter non seulement des heures du jour, mais aussi des
durées entre deux événements (ce qui peut dépasser largement
les 24 heures, ou même, être négatif).
Vous pouvez spécifier une valeur de type
TIME
avec différents formats :
Une chaîne au format 'D
HH:MM:SS.fraction'
. (Notez que MySQL ne stockera
pas la fraction d'une valeur TIME
.)
Vous pouvez aussi utiliser l'une des syntaxes alternatives
suivantes : HH:MM:SS.fraction
,
HH:MM:SS
, HH:MM
,
D HH:MM:SS
, D HH:MM
,
D HH
ou SS
. Ici,
D
peut prendre des valeurs entre 0 et 33.
Une chaîne sans délimiteur au format
'HHMMSS'
, en supposant que cela puisse
avoir un sens en terme de date. Par exemple,
'101112'
est interprété comme
'10:11:12'
, mais
'109712'
est invalide (le nombre de
minutes n'a pas de sens), et devient la date zéro :
'00:00:00'
.
Un nombre au format HHMMSS
, en supposant
que cela puisse avoir un sens en terme de date. Par exemple,
101112
est interprété comme
'10:11:12'
. Les formats alternatifs sont
aussi compris : SS
,
MMSS
, HHMMSS
et
HHMMSS.fraction
. Notez que MySQL ne
stocke pas encore les fractions de secondes.
Le résultat d'une fonction qui retourne une valeur
acceptable dans un contexte de valeurs
TIME
, comme
CURRENT_TIME
.
Pour les valeurs TIME
spécifiées avec des
délimiteurs, il n'est pas nécessaire de préciser deux
chiffres pour les valeurs inférieurs à 10
pour les heures, minutes et secondes. '8:3:2'
est la même chose que '08:03:02'
.
Soyez soigneux lors de l'utilisation de valeurs ``courtes'' à
une colonne de type TIME
. MySQL interprète
les valeurs en supposant que les chiffres de droite
représentent les secondes (MySQL interprète les valeurs
TIME
comme des durées et non comme des
heures d'une journée). Par exemple, vous pouvez penser que les
valeurs '11:12'
, '1112'
et
1112
représentent
'11:12:00'
(12 minutes après 11 heures),
mais MySQL les interprétera comme '00:11:12'
(11 minutes, 12 secondes). Similairement,
'12'
et 12
représentent
'00:00:12'
. Les valeurs de
TIME
déclarées avec des
:
, au contraire, sont toujours traités comme
des heures de journée. '11:12'
signifiera
'11:12:00'
et non pas
00:11:12
Les valeurs hors de l'intervalle de validité de
TIME
mais qui sont valides sont ramenées à
la valeur maximale stockable la plus proche. Par exemple,
'-850:00:00'
et
'850:00:00'
sont respectivement converties en
'-838:59:59'
et
'838:59:59'
.
Les valeurs TIME
non valides sont
transformées en date zéro '00:00:00'
. Notez
que comme '00:00:00'
est elle-même une
valeur TIME
valide, vous n'aurez pas le moyen
de faire la différence entre une valeur
'00:00:00'
stockée en connaissance de cause,
et '00:00:00'
stockée à cause d'une erreur.
This is a translation of the MySQL Reference Manual that can be found at dev.mysql.com. The original Reference Manual is in English, and this translation is not necessarily as up to date as the English version.