Jeudi en buvant un verre avec un ami, il me demande la différence entre un Datetime et un Timestamp.
J'ai répondu mais je me doutais que je n'étais pas exhaustif.
J'ai donc un peu relu. Ca fait toujours du bien.
1° la taille
- Datetime -> 8 bytes
- alors que timestamp c'est 4 bytes
Si on a pas besoin de stocker une date et une heure, on a d'autres possibilités.
- Date ou Time c'est 3 Bytes
- Year C'est 1 byte
2° Les dates représentables
- Date et DateTime -> Année 1000 à 9999
- Year -> Année 1901 à 2155
- Timestamp -> Année 1970 à 2036[1]
3° "default" magiques
Timestamp peut être mis à jour automatiquement à la date serveur lors d'une création ou mise à jour de l'enregistrement.
4° Particularité supplémentaire pour mysql
Les valeurs ``zéro``
- DATETIME '0000-00-00 00:00:00'
- DATE '0000-00-00'
- TIMESTAMP 00000000000000 (la longueur dépend de la taille de l'affichage)
- TIME '00:00:00'
- YEAR 0000
Cela peut-être désactivé avec certains modes.
Affichage et format
Bien que les valeurs TIMESTAMP soient stockées avec une précision d'une seconde, la seule fonction qui travaille directement avec ces valeurs est la fonction UNIX_TIMESTAMP(). Les autres fonctions opèrent sur des valeurs lues et formatées.
Notes
[1] En fait c'est 2037 mais pas jusqu'au 31 décembre.








Commentaires
1. Le lundi 19 avril 2010 à 14:24, par Patrice Damezin
Ajouter un commentaire