SQL Server
memorizza la parte temporale come numero di 1/300
secondo lungo tick dalla mezzanotte.
23:59:59.999
viene arrotondato al segno di spunta più vicino che risulta essere 00:00:00.000
del giorno successivo.
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
Nel primo valore, la parte della data, 0x9B8F
(39823
) è il numero di giorni trascorsi da Jan 1st, 1900
e la parte temporale, 0
, è il numero di tick dalla mezzanotte.
Nel secondo valore, 0x018B81FF
(25919999
o 24 * 60 * 60 * 300 - 1
) è il numero massimo possibile di tick dalla mezzanotte.
Infine, il terzo valore ha 0
nella parte ora e nella parte data aumentate di uno.