I tipi di campi data in MySQL

MySQL
di Risorse.net

I tipi di campi data sono tutti quei campi che contengono come valore la data e/o l'ora.
Nella tabella che segue, li mostriamo uno ad uno:

Nome del tipo Formato Se vuoto (zero)
DATETIME AAAA-MM-GG hh:mm:ss 0000-00-00 00:00:00
DATE AAAA-MM-GG 0000-00-00
TIME hh:mm:ss 00:00:00
YEAR AAAA 0000
TIMESTAMP(2) AA 00
TIMESTAMP(4) AAMM 0000
TIMESTAMP(6) AAMMGG 000000
TIMESTAMP(8) AAAAMMGG 00000000
TIMESTAMP(10) AAMMGGhhmm 0000000000
TIMESTAMP(12) AAMMGGhhmmss 000000000000
TIMESTAMP(14) AAAAMMGGhhmmss 00000000000000

A=anno, M=mese, G=giorno, h=ora, m=minuti, s=secondi

DATETIME
E' il formato più completo e preciso a nostra disposizione. Varia da 1000-01-01 00:00:00 a 9999-12-31 23:59:59

DATE
Uguale al precedente, ma senza l'ora. Ammette infatti dati a partire da 1000-01-01 al 9999-12-31.

TIME
Salva l'ora. I valori vanno da 00:00:00 a 23:59:59. E' possibile però salvare intervalli di valore tra un evento e un altro e qundi, ammettere ore differenti. In questo caso, i dati vanno da -838:59:59 a 838:59:59.
MySQL legge i valori partendo da destra, quindi, salvando un campo con il contenuto 8:32, nel database verrà interpretato come 00:08:32.
Oltre ai due punti ( : ) MySQL ammette altri segni di interpunzione senza particolari difficoltà.
L'immissione di un valore sbagliato sarà salvato come mezzanotte in punto (00:00:00).

YEAR
Salva l'anno ed è il campo più leggero: 1 solo byte. Ammette valori dal 1901 al 2155. Gli anni possono essere salvati a due o a quattro cifre. MySQL, in caso di anni a due cifre, interpreterà i valori da 70 a 99 come dal 1970 al 1999. Quelli dall'1 al 69, come dal 2001 al 2069.
Per evitare fraintendimenti quindi, è consigliabile impostare l'anno a quattro cifre.

TIMESTAMP
Questo campo salva (nel formato scelto dal numero tra le parentesi, si veda la tabella superiore) il momento esatto in cui la tabella viene modificata. Quindi può essere utile per visualizzare (senza doverlo calcolare ogni volta) il momento dell'ultima modifica del record in cui il campo TIMESTAMP appartiene.
Ammette anni compresi tra il 1970 e il 2037.
Tutti i tipi di TIMESTAMP occupano lo stesso spazio: 4 byte. Perché questo? Nonostante i vari formati? Perché MySQL salva comunque tutti i dati e poi ne visualizza solo quelli richiesti. Ad esempio, con TIMESTAMP(2) il database visualizza solo due cifre dell'anno, ma in memoria ha tutti gli altri dati (anno a 4 cifre, mese, giorno, ora, minuti e secondi). Quando infatti modifichiamo il tipo di TIMESTAMP, ad esempio con TIMESTAMP(8) lui ha tutti i dati in memoria.
La stessa cosa avviene quando abbassiamo il valore di TIMESTAMP, visualizzando quindi meno dati. MySQL non cancellerà i vari valori, semplicemente li nasconderà.

© Risorse.net (www.risorse.net)
pagina in versione stampabile:
http://www.risorse.net /mysql/tipi_campi_data.asp?print=ok