• Nice, but I think you meant

    set @start_of_day = dateadd(day,datediff(day,0,@date),0);

    rather than

    set @start_of_day = dateadd(day,datediff('day',0,@date),0);

    or am I missing something?