Started a English B2 course on this site PerfectlySpoken. Came across these two sentences, which one is correct is the question of the exercise, the teacher said the first one is, but I did not understand why. In my brain both make sense for some reason.

I have had a headache all morning. -> Correct
I have been having a headache all morning. -> Incorrect

  • I guess it is nicer to show the effort you already made, such as grammar rules and examples in a dictionary or other trusted reference.
    – WXJ96163
    Mar 24, 2020 at 11:47
  • Obviously composed by people who don't know English well. Or else don't care whether other people learn it well. Mar 24, 2020 at 21:34

1 Answer 1


When you say "I have a headache", you are talking about your current state of suffering from that affliction. To say "I'm having a headache" adds nothing to the statement, and it is not idiomatic. The same thing applies to "have had" - making it progressive adds nothing and is not idiomatic.
Compare to "I have a cold." That's correct and complete. You wouldn't say "I'm having a cold."

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .