I noticed this in English but not in other languages. But "Good night" is only said when saying goodbye to someone, either because they're going back home, or going to bed.
It is incorrect to greet someone "Good night", even if it is the middle of the night.
"Good evening" is the opposite. You cannot say "Good evening" to someone when you are going away. It is exclusively a greeting. It is incorrect to say "good evening" to say goodbye to someone, even if it is in the evening.
Also,
bonjour = "Good morning" if it is in the morning and you are greeting them for the first time that day.
= "Hello" otherwise, or if you don't know the person yet.
You can say "hello" in the first case, but "Good morning" would be the most appropriate. "Good day" (= "Bon Jour") is only used in Australia.