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.
dependency 26-07-2018 05:37
bardzo ciekawe! ale na odpowiedź w trakcie rozmowy kwalifikacyjnej się nie nadaje, zbyt szczegółowo, na rozmowie nie możesz pokazać komuś kodu.


© 2024 - SkillsTest.pl | | Regulamin | Polityka Prywatnosci