Apr/091
Mes notes: Les types de données temporelles
| Type | Bytes | Range |
| DATE | 3 | 1000-01-01 à 9999-12-31 |
| TIME | 3 | -838:59:59 à 838:59:59 |
| DATETIME | 8 | 1000-01-01 00:00:00 à 9999-12-31 23:59:59 |
| TIMESTAMP | 4 | 1970-01-01 00:00:00 à mi-2037 |
| YEAR | 1 | 1901 à 2155 pour YEAR(4) et 1970 à 2069 pour YEAR(2) |
(Des valeurs peuvent excéder le range, sans garantie sur le résultat)
Chaque type peut avoir 0 comme valeur pour représenter une valeur insérée illégale. Le format par défaut est YYYY-MM-DD. Cependant, le format YYYY-M-D (2009-1-1) est supporté. De plus, le séparateur – n’est pas obligatoire, on peut également utiliser / (2009/01/01)
L’affichage des années peut se faire avec 2 ou 4 chiffres. Lorsque représenté avec 2 chiffres, 70 à 99 représente 1970 à 1999 alors que 00 à 69 représente 2000 à 2069.
Pour que les timestamps s’updatent automatiquement à l’insertion ou l’update, il faut spécifier l’option DEFAULT CURRENT_TIMESTAMP ou ON UPDATE CURRENT_TIMESTAMP. Cependant, pour conserver une compatibilité avec MySQL 4.1, ils sont considérés par défaut sur la première colonne timestamp.
Les 2 attributs peuvent être setté sur le même champ, mais il est impossible de mettre 1 différent attribut sur 2 champs. Par contre, la compatibilité avec MySQL 4.1 permet de tricher en ne spécifiant pas le DEFAULT CURRENT_TIMESTAMP sur la première colonne, et le ON UPDATE.. sur une 2ieme.
Si on ne veut pas qu’une colonne timestamp s’update automatiquement, il faut explicitement mettre sa par défaut à NULL.
Pour modifier le timezone, il faut changer la variable système : SET global time_zone = ‘+05 :00′; Par défaut, c’est le timezone du système. Si un client modifie le timezone, la même valeur sera différente d’un client à l’autre. Ce changement modifie aussi la valeur retournée par NOW().
SELECT CONVERT_TZ(’2005-01-27 13:30 :00′,’+01:00′,’+03:00);
2005-01-27 15:30 :00
Enjoy this article?
Leave a comment
No trackbacks yet.
4:08 am on May 2nd, 2009
Toujours pratique à avoir sous le coude, le genre d’article à Ctrl+D !