Nelle lezioni precedenti abbiamo visto i tipi di dati numerici e stringa, in questa lezione affronteremo un terzo tipo anch’esso molto utilizzato in MySQL: i dati correlati a date e orari. Tali tipi di dati sono molto utili quando si ha a che fare con informazioni riguardanti la data e l’orario. Di seguito una tabella riepilogativa:
Tipo | Formato |
---|---|
DATETIME | AAAA-MM-GG HH:MM:SS |
DATE | AAAA-MM-GG |
TIME | HH:MM:SS |
YEAR | AAAA |
TIMESTAMP | Può avere diversi formati (vedi sotto) |
Di seguito i diversi formati di Timestamp:
Tipo | Formato |
---|---|
TIMESTAMP(14) | AAAAMMGGHHMMSS |
TIMESTAMP(12) | AAMMGGHHMMSS |
TIMESTAMP(10) | AAMMGGHHMM |
TIMESTAMP(8) | AAAAMMGG |
TIMESTAMP(4) | AAMM |
TIMESTAMP(2) | AA |
I campi di tipo DATETIME contengono sia la data che l’orario; per quanto riguarda la data, MySQL impone dei limiti molto precisi validi anche per i campi DATE: le date accettate da questi campi vanno dal 1000-01-01 (1° gennaio dell’anno 1000) al 9999-12-31 (31 dicembre del 9999).
I valori all’interno di questi campi possono essere inseriti sia sotto forma di stringhe che di numeri.
Il tipo di campo più interessante di questa famiglia è sicuramente TIMESTAMP: questo campo è destinato ad osptiare una valore numerico corrispondente al numero di secondi trascorsi da epoch, cioè dal 1 gennaio 1970. Il limite massimo di capienza di questo campo arriva sino all’anno 2037.
Creare campi con questo tipo di dato può rivelarsi molto utile quando si desidera memorizzare automaticamente ogni azione (INSERT o UPDATE) che riguarda ciascuna riga di una colonna. Per ottenere un simile risultato è sufficiente utilizzare una dichiarazione come questa:
CREATE TABLE log_accessi (
...
aggiornamento TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
...
);
Nel nostro esempio abbiamo creato una colonna "aggiornamento" in cui viene salvato il timestamp corrente sia al momento della creazione del record che in quello, successivo, di un suo eventuale update.