We use "by" to specify time or date, as in
I have to go by 9 am.
We can also use "at" here. When to use "by" / "on" / "at"?
When "by" should be preferred over "before" or "till"?
I have to go by 9 am
means the latest you can stay is 9 am. You have to leave at or before 9 am.
I have to go on 9 am
does not make sense because on is used with days and dates.
I have to go at 9 am
means you have to leave when the time is (exactly) 9 am.
To answer your follow-up question:
Use before when you have to leave earlier than 9 am.
Use by when you can leave specifically at 9 am or earlier.
Till is the informal version of until. Until has many uses, just like the on/at/by, but I think the main use here is
use until to talk about something that will keep going on for a duration of time from a specific time to another.
So "I have to leave until 9 am" doesn't really make sense. One might interpret this as you have to be gone or absent until 9 am. But as you can see, it has a completely different meaning than with the words at or by. You can say
I have to stay until 9 am.
This means you have to stay. And when the time is 9 am, you are free to leave. Depending on the context, it might imply that you will leave at exactly 9 am.
Use by when some action or event needs to be completed before a specific date or time, but it is possible that it could happen earlier.
I must leave for the airport by 9:00 AM tomorrow
(allowing the possibility of leaving earlier)
We must complete this report by the end of July.
(allowing the possibility of completing it earlier)
When we have a specific date or time use on for a date, use at for a time.
We leave for our vacation on Tuesday 13th August.
The train is due to arrive at 10:15 tomorrow morning.
we can use both on and at in the same sentence:
My flight leaves at noon on Wednesday 17th September.