SQL Server
speichert den Zeitteil als Zahl von 1/300
Sekundenlange Ticks ab Mitternacht.
23:59:59.999
wird auf den nächsten Tick gerundet, der zufällig 00:00:00.000
ist des nächsten Tages.
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
Im ersten Wert, dem Datumsteil, 0x9B8F
(39823
) ist die Anzahl der Tage seit dem Jan 1st, 1900
, und der Zeitteil, 0
, ist die Anzahl der Ticks seit Mitternacht.
Im zweiten Wert 0x018B81FF
(25919999
, oder 24 * 60 * 60 * 300 - 1
) ist die maximal mögliche Anzahl von Ticks seit Mitternacht.
Der dritte Wert schließlich hat die 0
im Zeitteil und im Datumsteil um eins erhöht.