Which is correct, "all night" or "all-night" and why?

While I am not a grammarian, here is my answer.

The dash between the two words indicates that they are to be taken as unit as they are applied to something that follows. For example, I met Salena at an all-night diner. What kind of diner was it? An all-night diner, rather than a diner that was both all and night.

While the dash is not a horrible, no good, breach of grammatical usage, I would prefer I stayed up all night fixing the broken database over I stayed up all-night fixing the broken database. For me, the second form triggers a "missing step" response (or, if you like, a missing-step response); I would expect that the all-night usage would modify something that follows but there is nothing following that would make a reasonable target.

But note that if your target audience would fall over laughing if they were to read this answer, you should do it the way that said target audience expects it to be done.


The answer should be "we've been up all night writing reports".

You only use hyphens between words when there are multiple words that are supposed to behave as one.

For instance, you could say "We have an all-night party." "All-night" has a hyphen in it because it is functioning as one adjective modifying "party".

Another example is "I attended an eight-year-old boy's birthday party." "Eight-year-old" is behaving as one adjective modifying "boy", so it is hyphenated.

A third example is "There are many moss-covered rocks in the forest." "Moss-covered" is hyphenated since it is behaving as one adjective modifying "rocks".