Este artigo fornece uma comparação lado a lado dos tipos de dados de data e hora no SQL Server em relação ao intervalo, precisão e tamanho do armazenamento.
Tipo de dados | Intervalo | Precisão | Tamanho do armazenamento |
---|---|---|---|
data | 0001-01-01 Através dos 9999-12-31 | 1 dia | 3 bytes |
datahora | 1753-01-01 Através dos 9999-12-31 00:00:00 Através dos 23:59:59.997 | 0,00333 segundos | 8 bytes |
datetime2 | 0001-01-01 Através dos 9999-12-31 00:00:00 Através dos 23:59:59.9999999 | 100 nanossegundos | 6 a 8 bytes* |
deslocamento de data e hora | 0001-01-01 Através dos 9999-12-31 00:00:00 Através dos 23:59:59.9999999 -14:00 Através dos +14:00 | 100 nanossegundos | 8 a 10 bytes* |
smalldatetime | 1900-01-01 Através dos 06-06-2079 00:00:00 Através dos 23:59:59 | 1 minuto | 4 bytes |
hora | 00:00:00.0000000 Através dos 23:59:59.9999999 | 100 nanossegundos | 3 a 5 bytes* |
* Observe que os valores de armazenamento listados aqui são os valores listados na documentação da Microsoft. No entanto, esses tipos de dados também usam 1 byte para armazenar a precisão. Portanto, adicione 1 byte às quantidades listadas aqui para obter uma visão mais completa dos requisitos de armazenamento.
Por exemplo, o tamanho do armazenamento para datetime2 varia de 7 a 9 bytes se você incluir o byte extra.
Conversão entre dados desses tipos
Devido às diferenças de precisão e alcance entre esses tipos de dados, você precisa ter muito cuidado ao converter entre eles. Em particular, a conversão de um tipo de precisão mais alta para um tipo de precisão mais baixa pode resultar na perda de parte do valor e o valor restante ser arredondado.
Confira a conversão entre tipos de dados de data e hora no SQL Server para obter exemplos.