MySQL lui même est compatible an 2000. (see Section 1.2.5, « Compatibilité an 2000 »), mais les valeurs manipulées par MySQL peuvent ne pas l'être. N'importe quelle valeur n'ayant que deux chiffres pour représenter l'année est ambigu, car le siècle n'est pas précisé. Ces valeurs doivent être interprétées comme des valeurs à 4 chiffres, car MySQL stocke les années en interne en utilisant 4 chiffres.
Pour les types DATETIME
,
DATE
, TIMESTAMP
, et
YEAR
, MySQL interprète les dates ambigus en
se basant sur les règles suivantes :
Les valeurs d'années comprises dans l'intervalle
00-69
sont converties en
2000-2069
.
Les valeurs d'années comprises dans l'intervalle
70-99
sont converties en
1970-1999
.
Gardez bien à l'esprit que ces règles ne sont que la meilleure approximation possible d'une valeur. Si l'heuristique proposée par MySQL ne fournit pas les valeurs attendues, vous devrez fournir une valeur sans ambiguïté. (à 4 chiffres)
ORDER BY
ordonnera correctement les types
YEAR/DATE/DATETIME
à deux chiffres.
Notez aussi que quelques fonctions comme
MIN()
et MAX()
convertiront un TIMESTAMP/DATE
en nombre.
Cela signifie qu'un timestamp avec une année à deux chiffres
ne donneront pas de résultats corrects avec ces fonctions. Une
solution dans ce cas est de convertir le
TIMESTAMP/DATE
en une année à 4 chiffres ou
d'utiliser quelque chose comme
MIN(DATE_ADD(timestamp,INTERVAL 0 DAYS))
.
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.