SkillsTest.pl SQL pytania i zadania rekrutacyjne W jaki sposób SQL Server przechowuje daty?

: 2017-10-04 | Nr 18 z 24

Pytanie

W jaki sposób SQL Server przechowuje daty? SQL

Typ DATETIME jest przechowywany jako dwie wartości typu INT. Pierwsza wartość reprezentuje liczbę dni a druga reprezentuje czas. Wartość oznaczająca liczbę dni mieści się w przedziale od 1 stycznia 1753r do 31 grudnia 9999r. Dostępny przedział czasowy mieści się od 00:00:00:000 do 23:59:59:997.

Wartość domyślna, czyli zero dla obydwu wartości to 1900-01-01 00:00:00:000.
SELECT CAST (0 AS DATETIME)

Output:
1900-01-01 00:00:00.000

Daty poniżej wartości domyslnej są reprezentowane poprzez ujemną liczbę dni a powyżej poprzez dodatnią liczbę dni. Np. 31 grudnia 1899 jest reprezentowany przez liczbę dni -1, a 1 stycznia 1901r będzie dniem +365.
SELECT CAST (-1 AS DATETIME)

Output:
1899-12-31 00:00:00.000

SELECT CAST (365 AS DATETIME)

Output:
1901-01-01 00:00:00.000

Dla wartości oznaczających czas, najmniejsza możliwa rozdzielczość to 3ms. To oznacza, że 00:00:00:003 jest przechowywane jako 1, a 1 sekunda, czyli 00:00:01:000 jest przechowywane jako 300.

Polecamy

Na co możesz wydać swoje 15k?

Zabawki dla dwulatka