Llegué hace dos años. (I arrived two years ago.) Vivo aquí desde hace dos años. (I've lived here for two years.) Two sentences, both with hace dos años, and two completely different meanings. The difference comes down to one thing: is the action finished, or still going on?
Quick shortcut: something finished → hace + time (like English "ago"). Something still going on → hace + time + que + present, or present + desde hace + time (like English "for"). A starting point → desde + that point (like English "since").
Hace + time = "ago": something finished
When the action is over, hace pairs with a past tense (usually the preterite) and simply means "ago." The time expression can come at the start or the end of the sentence.
- Llegué hace dos años. / Hace dos años llegué. (I arrived two years ago.)
- Empezó a estudiar español hace seis meses. (She started studying Spanish six months ago.)
- ¿Cuándo la viste? — La vi hace una semana. (When did you see her? — I saw her a week ago.)
Notice hace itself never changes — it's always the third-person singular of hacer, no matter the subject of the main verb.
Hace + que + present, or present + desde hace: "for" — something still going on
When the action started in the past but is still happening now, Spanish has two equivalent structures, both needing a present-tense verb (not a past tense, even though English often uses "have been -ing"):
| Structure | Example |
|---|---|
| Hace + time + que + present | Hace dos años que vivo aquí. (I've lived here for two years.) |
| Present + desde hace + time | Vivo aquí desde hace dos años. (Same meaning, different word order.) |
Both say the same thing: living here started two years ago and is still true now. The plain present — Vivo aquí desde hace dos años — is the usual, learner-friendly choice, even though English says "I have lived." Reaching for a compound past tense instead (He vivido aquí desde hace dos años) is a common instinct for English speakers, and it's not wrong in every variety or context, but it's not the pattern to default to here: stick with the present unless you have a specific reason not to.
The same pattern works for questions with cuánto tiempo (how long):
- ¿Cuánto tiempo hace que estudias español? (How long have you been studying Spanish?)
- ¿Cuánto tiempo llevas estudiando español? is another common way to ask the same thing, using llevar + gerund — its own construction, worth knowing exists even though this lesson focuses on hace/desde.
Desde: naming the starting point
Desde doesn't measure a duration — it names the point something began. When that something is still going on, desde pairs with a present-tense verb, just like desde hace does:
- Vivo aquí desde 2020. (I've lived here since 2020.)
- Trabajo en esta empresa desde marzo. (I've worked at this company since March.)
- La conozco desde el colegio. (I've known her since school.)
Desde hace names a duration (desde hace dos años, for two years); plain desde names a point in time (desde 2020, since 2020). This lesson focuses on the case where the situation is still true now, which is why the examples above take the present tense — but desde itself isn't limited to that: it can also mark a completed interval in the past, paired with hasta (until), as in Viví allí desde 2000 hasta 2003 (I lived there from 2000 until 2003).
Common mistakes
- ❌ Vivo aquí hace dos años (missing que or desde) → ✅ Vivo aquí desde hace dos años or ✅ Hace dos años que vivo aquí.
- He vivido aquí desde hace dos años isn't wrong everywhere, but ✅ Vivo aquí desde hace dos años (present) is the safer, more common default — reach for it first.
- ❌ Llegué desde dos años (using desde for a duration) → ✅ Llegué hace dos años. (a finished action needs hace, not desde)
- ❌ Vivo aquí desde dos años (using desde directly with a duration) → ✅ Vivo aquí desde hace dos años. (desde alone needs a point — desde 2020, desde marzo — not a bare duration; a duration needs desde hace)
Quick check
Try choosing hace, hace que, or desde for each blank:
- Empecé este trabajo ___ tres meses (and I'm not working there anymore).
- Trabajo aquí ___ marzo (and I still do).
- ___ un año que estudio francés (and I still study it).
- Nos conocimos ___ mucho tiempo (a finished event, in the past).
Show answers
- Empecé este trabajo hace tres meses. (finished action, "ago") 2. Trabajo aquí desde marzo. (a starting point, still true) 3. Hace un año que estudio francés. (duration, still true) 4. Nos conocimos hace mucho tiempo. (finished action, "ago")
Learn faster with GrammarMama
This article covers one topic — here's how GrammarMama helps you turn it into lasting progress:
-
Know your level — A quick placement test finds your CEFR level, so every exercise fits you. Find your level →
-
Follow a clear path — Practise every topic in the right order, from A1 all the way to C2. See the full path →
-
Set your own goal — Tell us what you're learning for, and exercises follow your interests. Set a goal →
-
Track your mistakes — See the patterns behind what trips you up, and fix them for good. Review your mistakes →
-
Build your vocabulary — Words from your exercises are saved and reviewed with spaced repetition. Open your vocabulary →
-
Practise speaking — Answer exercises out loud instead of typing, whenever you like. Try speech practice →
-
Train your pronunciation — Get instant, word-by-word feedback on how you sound. Train your pronunciation →
-
Practise a little every day — Short daily exercises, matched to your level, keep the language fresh. Start practising →
Key takeaways
- Hace + time + past tense = "ago," for something already finished: Llegué hace dos años.
- Hace + time + que + present, or present + desde hace + time = "for," for something still going on: Hace dos años que vivo aquí / Vivo aquí desde hace dos años.
- Desde + a point in time = "since," also for something still going on: Vivo aquí desde 2020.
- For something still true now, the plain present is the usual choice in Spanish, even where English says "have been" — vivo, not (by default) he vivido.
- Desde also has a life beyond "still true now": paired with hasta, it marks a completed interval in the past (Viví allí desde 2000 hasta 2003).