I can see that it works but what is the meaning of the time int value.
Here is an example of why I say it is stored as a float.
with cte as (
select getdate() as date_format
, cast(getdate() as float) as date_as_float)
select date_format
, date_as_float
, floor(date_as_float) as date_int
, date_as_float - floor(date_as_float) as time_fraction
, floor((date_as_float - floor(date_as_float)) * 86400000) as time_in_ms
from cte;
If you take the time_in_ms and do the math you can get the hours, minutes, seconds and milliseconds (+/- a few ms).