-
TIMESTAMP est stocké dans une méthode propriétaire MySQL (bien qu'il s'agisse essentiellement d'une chaîne composée de l'année, du mois, du jour, de l'heure, des minutes et des secondes) et, en outre, un champ de type TIMESTAMP est automatiquement mis à jour chaque fois que l'enregistrement est inséré ou modifié et non explicite la valeur du champ est donnée :
mysql> create table timestamp_test( id integer not null auto_increment primary key, val varchar(100) not null default '', ts timestamp not null); Query OK, 0 rows affected (0.00 sec) mysql> insert into timestamp_test (val) values ('foobar'); Query OK, 1 row affected (0.00 sec) mysql> select * from timestamp_test; +----+--------+----------------+ | id | val | ts | +----+--------+----------------+ | 1 | foobar | 20090122174108 | +----+--------+----------------+ 1 row in set (0.00 sec) mysql> update timestamp_test set val = 'foo bar' where id = 1; Query OK, 1 row affected (0.00 sec) Rows matched: 1 Changed: 1 Warnings: 0 mysql> select * from timestamp_test; +----+---------+----------------+ | id | val | ts | +----+---------+----------------+ | 1 | foo bar | 20090122174123 | +----+---------+----------------+ 1 row in set (0.00 sec) mysql>
-
DATETIME est le type de données standard pour les dates et les heures qui fonctionne conjointement avec les fonctions de date et d'heure de MySQL. Je l'utiliserais probablement dans la pratique
- Le stockage des dates au format INTEGER n'est pas recommandé, car vous ouvrez une véritable boîte de Pandore en raison de problèmes intéressants tels que les fuseaux horaires, les années bissextiles, etc. - du moins si vous avez l'intention d'interroger la base de données en fonction de dates spécifiques stockées dans ce champ.