time-of-day components of DATE arguments are discarded before the computation is performed. That's not strictly true. If both dates have the same day of month, the result is an integer. Meaning any time differences are ignored.
If they are different days, then the time is taken into account:
select
months_between (
to_date ( '2024-10-01 12:34:56', 'yyyy-mm-dd hh24:mi:ss'),
to_date ( '2024-09-01 00:00:00', 'yyyy-mm-dd hh24:mi:ss')
) same_day_diff_time,
months_between (
to_date ( '2024-10-02 00:00:00', 'yyyy-mm-dd hh24:mi:ss'),
to_date ( '2024-09-01 00:00:00', 'yyyy-mm-dd hh24:mi:ss')
) diff_day_same_time,
months_between (
to_date ( '2024-10-02 12:34:45', 'yyyy-mm-dd hh24:mi:ss'),
to_date ( '2024-09-01 00:00:00', 'yyyy-mm-dd hh24:mi:ss')
) diff_day_diff_time;
SAME_DAY_DIFF_TIME DIFF_DAY_SAME_TIME DIFF_DAY_DIFF_TIME
------------------ ------------------ ------------------
1 1.03225806 1.04916555