• 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).