SQL Server
armazena a parte do tempo como número de 1/300
segundos longos tiques a partir da meia-noite. 23:59:59.999
é arredondado para o tick mais próximo, que é 00:00:00.000
do dia seguinte. 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
No primeiro valor, a parte da data,
0x9B8F
(39823
) é o número de dias desde Jan 1st, 1900
, e a parte do tempo, 0
, é o número de tiques desde a meia-noite. No segundo valor,
0x018B81FF
(25919999
, ou 24 * 60 * 60 * 300 - 1
) é o número máximo possível de tiques desde a meia-noite. Finalmente, o terceiro valor tem o
0
na parte da hora e a parte da data aumentada em um.