SQL Server
przechowuje część czasu jako liczbę 1/300
drugie długie tiki od północy.
23:59:59.999
zostaje zaokrąglona do najbliższego tiku, który wypada 00:00:00.000
następnego dnia.
SELECT CAST(CAST('2009-12-01 00:00:00.000' AS DATETIME) AS BINARY(8)),
CAST(CAST('2009-12-01 23:59:59.997' AS DATETIME) AS BINARY(8)),
CAST(CAST('2009-12-01 23:59:59.999' AS DATETIME) AS BINARY(8))
0x00009B8F 00000000 0x00009B8F 018B81FF 0x00009B90 00000000
W pierwszej wartości część daty, 0x9B8F
(39823
) to liczba dni od Jan 1st, 1900
i część czasu, 0
, to liczba tików od północy.
W drugiej wartości 0x018B81FF
(25919999
lub 24 * 60 * 60 * 300 - 1
) to maksymalna możliwa liczba tików od północy.
Wreszcie trzecia wartość ma 0
w części czasu, a część daty wzrosła o jeden.