• WHERE month(b.start_time) = @Loc_Month

    AND year(b.start_time) = @Loc_Year

    Is there any other way to avoid using function in WHERE clause in this scenario?

    It doesn't have huge impact on query speed but as pointed out earlier, it is not a good practice.