Der DATETIME Datentyp ist 8 Bytes gross. Die ersten vier Bytes speichern die Anzahl der Tage vor oder nach dem 01.01.1900; die letzten vier Bytes speichern die Anzahl der 'Clock Ticks' seit Mitternacht. Die binäre Darstellung jedes der beiden 4-byte Stücke ist tatsächlich die gleiche die auch für Integer Darstellung benutzt wird. Jede Sekunde besteht aus 300 Ticks, die merkwürdigerweise um ein Vielfaches präziser sind als @@TIMETICKS.
DECLARE @FirstTime DATETIME
DECLARE @LastTime DATETIME
SET @FirstTime = '24.09.2003 23:59:59.999'
SET @LastTime = '25.09.2003 00:00:00.001'
SELECT
@FirstTime
, @LastTime
, CASE WHEN @FirstTime = @LastTime THEN 'Same time' END
------------------------- ------------------------- ---------
2003-09-25 00:00:00.000 2003-09-25 00:00:00.000 Same time
(1 row(s) affected)
Danke an Jonathan Van Houtte.