SQL Server
stocke la partie horaire sous la forme d'un nombre de 1/300
secondes longues tiques à partir de minuit.
23:59:59.999
est arrondi au tick le plus proche qui se trouve être 00:00:00.000
du lendemain.
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
Dans la première valeur, la partie date, 0x9B8F
(39823
) est le nombre de jours depuis le Jan 1st, 1900
, et la partie horaire, 0
, est le nombre de ticks depuis minuit.
Dans la deuxième valeur, 0x018B81FF
(25919999
, ou 24 * 60 * 60 * 300 - 1
) est le nombre maximal possible de ticks depuis minuit.
Enfin, la troisième valeur a le 0
dans la partie heure et la partie date augmentées de un.