55

My friend asked me just today, "Hey, how are you?"

I said, "Tired, sleepy, and can't concentrate on my work."

He then asked, "Why so?"

Here is where the interesting part starts.

I said, "I have had a headache yesterday"

He said that I should have said "I had a headache yesterday" instead of "I have had a headache yesterday"

But all grammar books say that with Present Perfect + Past Tense we mean an action that continues into the present; has consequences in the present.

I didn't want to just tell the fact that I had a headache but I implied that that was the reason I was "Tired, sleepy, and can't concentrate on my work."

Who is right?

5
  • 30
    PS: He said that I must have said "I had a headache yesterday" doesn't mean the right thing. Use: He said that I should have said "...". Commented Mar 22, 2017 at 19:10
  • @NigelTouch Why should, why not must? Grammar please. Commented Mar 23, 2017 at 5:35
  • 11
    "Must" is used in the sense of "should" or "is required to" when referring to future actions. "Must" can also convey the sense that something is very likely or necessarily true. If I say "I must have said [something]," the meaning is that one could infer (from other facts) that I actually did say the thing that I must have said. In this case it is clear that you did not say "I had a headache yesterday," (But I think your comment would make a good new question, which might receive a more complete or better answer.)
    – David K
    Commented Mar 23, 2017 at 8:53
  • 2
    No. He's right. You mean something very specific that you don't mean, with I have had yesterday. I have had implies "I once had". I can't think of any real example that what you're saying would actually make perfect sense.
    – Timo
    Commented Mar 23, 2017 at 10:25
  • 1
    Re "Must", note that another valid phrasing is He said that I must say "I had a headache yesterday". As already covered I must have said "x", is a comment on reality (E.g. I though I said "y", but I now realise that I actually said "x") where must have is (I believe?) acting as a single phrasal verb. Whereas I must say "x" is a declaration about what is necessary, or required, or correct.
    – Brondahl
    Commented Mar 26, 2017 at 11:25

4 Answers 4

127

Yesterday refers to time in the past. If the headache has passed, you no longer have it:

I had a headache yesterday.

If your headache began yesterday and you still have it:

I have had a headache since yesterday.

Let's say you've acted grumpily towards someone and you want to apologize:

I'm sorry. I have had a bad headache all day.

You still have the headache. It began in the past (perhaps this morning) and has persisted.

Merely a causal connection between a past event and the present is not sufficient grounds to use the present perfect. If there is a time phrase relegating the action to the past, you cannot use the present perfect in that clause. If the time phrase excludes the present, the present perfect cannot be used in that clause.

He robbed a bank five years ago. And now he is in prison.

He robbed a bank early this morning, and he will go to prison for it.

He robbed a bank in his youth and he went to prison for it.

But contemplate this:

You have robbed a bank and now you are going to prison.

There is no time phrase relegating the robbery to the past, no time phrase which excludes the present; the speaker, by choosing the present perfect, is expressing a relationship of the past event to the present.

Here's how you might translate it on a semantic level:

He robbed a bank ~ he was a bank robber

He has robbed a bank ~ he is a bank robber

16
  • This is more of a follow up question. If you want to express that you still have the headache, is it ok to simply say "I have a headache since yesterday" instead of "I have had..."?
    – Mr. 14
    Commented Mar 23, 2017 at 6:05
  • 7
    @Mr.14: Nope, it needs to be either "I have had a headache since yesterday" or possibly "I have a headache, and have had it since yesterday". "Have" says your headache exists currently. "have had" says your headache existed in the past. Commented Mar 23, 2017 at 6:55
  • 1
    @Mr.14 Or "I have a headache, which started yesterday".
    – TripeHound
    Commented Mar 23, 2017 at 10:00
  • @Mr. 14: As Mark Ripley says, that doesn't work. We cannot combine a present tense verb with since in the same clause, with the possible exception of the verb-to-be, in questions, where we find since when are ...
    – TimR
    Commented Mar 23, 2017 at 11:47
  • 5
    @user8469759 It would perhaps not be entirely wrong, but you wouldn’t be likely to use the present perfect continuous in this case. Having a headache is a state, rather than an action, and the present perfect continuous tends to indicate regular reoccurrence with state verbs. You could say, “I’ve been having headaches since yesterday” meaning there’s been a regular reoccurrence of (separate) headaches coming and going for two days. This is different from “I’ve had a headache since yesterday” where the same headache has been there constantly. Commented Mar 23, 2017 at 17:29
42

I'd like to add to the great answer by TRomano above a little.

First off, I think you mean only Present Perfect (rather than Present Perfect + Past Tense), and your friend was right. This error is a common mistake among learners: the conflict between the tense and the time expression in the same sentence.

INCORRECT: I have had a headache yesterday.
(Why? Because have had continues from the past to the present. But yesterday is in the past.)

To fix this, you can a) match the tense to the time expression:

I had a headache yesterday.
(This had indicates an event in the past. Yesterday is in the past. It's a good sentence!)

or b) match the time expression to the tense:

I have had a headache since yesterday. (Have had continues from the past to the present, and so does since yesterday. This is another good sentence!)

Just remember: tenses and time expressions go together!

0
7

Here's an additional reason why the sentence "I have had a headache" sounds a little strange.

You can use the present perfect with a recent event that you are "still feeling". For example:

My arm hurts because I have been stung by a bee. (The bee sting is over, but I am still feeling the effects of the bee sting.)

I have ridden a roller coaster and now I'm dizzy. (The roller coaster ride is over, but I am still feeling the effects of the ride.)

I shouldn't drive because I have had too much beer. (The drinking is over, but I am still feeling the effects of the beer.)

I don't think of a headache as having lasting effects, the way that bee stings, roller coaster rides, and beer do. Even if you feel tired today because of the headache, you are not "still feeling" the headache.

3
  • 1
    "I am grumpy today because I have had continuing effects from the headache I had yesterday."
    – hBy2Py
    Commented Mar 22, 2017 at 21:46
  • I feel like I haven't done a good job of explaining this, so I've marked this answer as community wiki in case someone would like to improve it. Commented Mar 24, 2017 at 17:20
  • I thought it was fine... I was just trying to make a sort-of-joke by putting examples of both in the same sentence.
    – hBy2Py
    Commented Mar 24, 2017 at 17:27
1

"I have had a headache since yesterday"

Would be the way to say it in perfect tense, meaning you had a headache and it is still present now.

"I have Had a headache"

Would mean you have a headache now, it started in the past but the starting point is still unclear

"I had a headache yesterday"

This would be completely past tense, your headache started yesterday and then it finished so now it's a thing of the past.

"I had a headache"

Finally, the most ambigious and past-tense only example. This means you simply had a headache at one point in the past and it has ended some time ago.

0

You must log in to answer this question.

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