Questo articolo fornisce un confronto fianco a fianco dei tipi di dati di data e ora in SQL Server per quanto riguarda l'intervallo, la precisione e le dimensioni di archiviazione.
Tipo di dati | Gamma | Precisione | Dimensioni di archiviazione |
---|---|---|---|
data | 0001-01-01 tramite 9999-12-31 | 1 giorno | 3 byte |
dataora | 01-01-1753 tramite 9999-12-31 00:00:00 tramite 23:59:59.997 | 0,00333 secondi | 8 byte |
datatime2 | 0001-01-01 tramite 9999-12-31 00:00:00 tramite 23:59:59.9999999 | 100 nanosecondi | Da 6 a 8 byte* |
datatimeoffset | 0001-01-01 tramite 9999-12-31 00:00:00 tramite 23:59:59.9999999 -14:00 tramite +14:00 | 100 nanosecondi | da 8 a 10 byte* |
smalldatetime | 01-01-1900 tramite 06-06-2079 00:00:00 tramite 23:59:59 | 1 minuto | 4 byte |
tempo | 00:00:00.0000000 tramite 23:59:59.9999999 | 100 nanosecondi | Da 3 a 5 byte* |
* Si noti che gli importi di archiviazione elencati qui sono gli importi elencati nella documentazione Microsoft. Tuttavia, questi tipi di dati utilizzano anche 1 byte per memorizzare la precisione. Pertanto, aggiungi 1 byte agli importi qui elencati per un quadro più completo dei requisiti di archiviazione.
Ad esempio, la dimensione dello spazio di archiviazione per datetime2 varia da 7 a 9 byte se includi il byte aggiuntivo.
Conversione tra questi tipi di dati
A causa delle differenze di precisione e intervallo tra questi tipi di dati, è necessario prestare la massima attenzione durante la conversione tra di loro. In particolare, la conversione da un tipo di precisione superiore a un tipo di precisione inferiore può comportare la perdita di parte del valore e l'arrotondamento per eccesso del valore rimanente.
Per esempi, consulta Conversione tra tipi di dati di data e ora in SQL Server.