Ten artykuł zawiera porównanie typów danych daty i godziny w SQL Server pod kątem ich zakresu, dokładności i rozmiaru pamięci.
Typ danych | Zakres | Dokładność | Rozmiar pamięci |
---|---|---|---|
data | 0001-01-01 przez 9999-12-31 | 1 dzień | 3 bajty |
data i godzina | 1753-01-01 przez 9999-12-31 00:00:00 przez 23:59:59,997 | 0,0333 sekundy | 8 bajtów |
datetime2 | 0001-01-01 przez 9999-12-31 00:00:00 przez 23:59:59.9999999 | 100 nanosekund | 6 do 8 bajtów* |
przesunięcie daty i godziny | 0001-01-01 przez 9999-12-31 00:00:00 przez 23:59:59.9999999 -14:00 przez +14:00 | 100 nanosekund | 8 do 10 bajtów* |
smalldatetime | 1900-01-01 przez 2079-06-06 00:00:00 przez 23:59:59 | 1 minuta | 4 bajty |
czas | 00:00:000.0000000 przez 23:59:59.9999999 | 100 nanosekund | 3 do 5 bajtów* |
* Zwróć uwagę, że podane tutaj ilości pamięci są kwotami podanymi w dokumentacji firmy Microsoft. Jednak te typy danych również używają 1 bajtu do przechowywania precyzji. Dlatego dodaj 1 bajt do podanych tutaj ilości, aby uzyskać pełniejszy obraz wymagań dotyczących przechowywania.
Na przykład rozmiar pamięci dla datetime2 będzie wynosić od 7 do 9 bajtów, jeśli uwzględnisz dodatkowy bajt.
Konwertowanie danych między tymi typami
Ze względu na różnice w dokładności i zakresie między tymi typami danych należy zachować szczególną ostrożność podczas konwersji między nimi. W szczególności konwersja z typu o wyższej precyzji na typ o mniejszej precyzji może spowodować utratę części wartości, a pozostała wartość zostanie zaokrąglona w górę.
Zapoznaj się z przykładami konwersji między typami danych daty i godziny w SQL Server.