-
TIMESTAMP è memorizzato in un metodo proprietario MySQL (sebbene sia fondamentalmente solo una stringa composta da anno, mese, giorno, ora, minuti e secondi) e inoltre, un campo di tipo TIMESTAMP viene aggiornato automaticamente ogni volta che il record viene inserito o modificato e non viene fornito il valore del campo:
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 è il tipo di dati standard per date e ore che funziona in combinazione con le funzioni di data e ora in MySQL. Probabilmente lo userei in pratica
- Non è consigliabile memorizzare le date in formato INTEGER, poiché stai aprendo un vero barattolo di worm a causa di problemi interessanti come fusi orari, anni bisestili e simili, almeno se intendi interrogare il database in base a date specifiche memorizzate in quel campo.