Dear WD: This is the perfect opportunity to ask a question that’s been on my mind for a while. What’s odd about the word “night”? Why does “good night” always mean goodbye, while good morning, good afternoon, good day can also mean hello? Why can we say yesterday morning, yesterday afternoon, yesterday evening, tomorrow morning, tomorrow afternoon, tomorrow evening, tomorrow night, but NOT yesterday night? — Reed Cooper.
Well, first things first. You can say anything you darn well please. If you want to say “yesterday night” in public, go right ahead. If you feel the urge to greet your friends by saying “good night,” be my guest. And if you notice your friends looking alarmed and backing away slowly, ignore them. They are just being hopelessly hidebound and unimaginative and probably don’t believe in cold fusion, either.
There’s nothing particularly odd about the word “night” in the constructions you mention. There is no underlying logical rule at work here. What you’ve noticed is simply the awesome role of idioms in the English language — we say things certain ways for no other reason than that we, well, say things that way. Speaking of how we say things, I must take exception to your roster of permissible locutions — many people do, in fact, say “last evening” as well as “last night.” The construction “yesterday evening” sounds a bit odd to me, in fact.
“Night” is, incidentally, an interesting word all by itself. The root of “night” was an ancient Indo-European word something like “nokt,” and the family resemblance among words for “night” is very apparent in almost all modern European languages. Thus, we had “nux” (Greek) and “nox” (Latin), and today we have “nuit” (French), “notte” (Italian), “noche” (Spanish), “noch” (Russian), “nacht” (German and Dutch), and “natt” (Swedish), among others. The only major language that seems to have opted out of this “night game” is Irish, where “night” is “oidhche,” a word that, in typically stubborn Irish fashion, has kept its origins a mystery.