Desde hace, desde and hace
Let's start with both of these words separetely:
Hace means ago, and we put it before the "time" (instead of after, like in English):
- Hace dos meses - two months ago.
- El teléfono sonó hace cinco minutos - The phone rang 5 min ago.
- Llegué hace un rato - I arrived a while ago.
- Nos mudamos hace 20 años - We moved 20 years ago.
Desde also means "since" or "from", which can be about time or about space.
Vamos a pintar desde el armario hasta la puerta - We're going to paint from the wardrobe to the door.
Expressing time, we use it for an specific point like like a month, a year, a time or a day.
Está enferma desde abril - She's ill since April.
See how we're using the present tense here "she is ill", because she's still ill and we're just saying since when.
Vivimos aquí desde 1992 - We live here since 1992.
We can also have it with future or past:
Venderemos lotería desde el 1 de noviembre - We'll sell lotery from the 1st of November.
Estuvimos aquí desde las 10 de la noche hasta la 1 de la mañana - We were here from 10 at night until one in the morning.
Now let's put these two words together.
This one has a more interesting and tricky translation. Literally, it'd be something like "since ... ago", but let's see it:
No voy al cine desde hace 2 años - Literally: "I don't go to the cinema since 2 years ago".
But we'd probably translate it more naturally as: "I haven't gone to the cinema in 2 years"
As you can see the sentence is in present tense when we write it but translates very well into past. Very common with negative causes like "I haven't done ... in a certain time".
For example, No voy al cine desde 2020 - I haven't gone to the cinema since 2020.
You can also have a sentence in affirmative:
Estudio italiano desde hace un año - Literally, "I study italian since a year ago", or a better translation: "I have studied italian for a year".
I'll mention one that you don't need to use but you'll see, and I'm not going to go too much into it because it might be too much, and cause unnecessary confussion:
I'm talking about "hace ...que no". It only works for negative acctions: I haven't done something for a while:
Hace 2 años que no voy al cine - I haven't gone to the cinema in 2 years, or literally, "2 years ago that I don't go to the cinema".
Another example: Hace tiempo que no cenamos con ellos - we haven't had dinner with them for a while.
Difference between desde and desde hace.
Let's see these sentences and the difference between them.
No estudia desde 1991 - She doesn't study since 1991. We use desde for an specific point in time.
No estudia desde hace 30 años - She hasn't studied for 30 years. It's not a specific day/year/month but an amount of time.
We use desde hace to specify the point we started to count from, in this case, 30 years ago, and it focuses on the amount of time that has passed.
Let's see another pair:
Es vegetariana desde junio - She's vegeterian since June (specific starting point).
Es vegetariana desde hace 7 meses - She's vegeterian since 7 months ago - She's been vegeterian for 7 months (the amount of time she's been a vegeterian for).
Others similar to "desde hace"
In a sentence using desde hace, we could say the same using the perfect tense:
Viven en esta casa desde hace 10 años - They have lived here for 10 year
Han vivido en esta casa 10 años - They have lived in this house for 10 years.
Also, we'd get the same result using llevar:
Llevar can translate as "have been" so we get more or less the same results:
Llevan viviendo en esta casa 10 años - They have been living in this house for 10 years.
Basically, all of those work to say that "something is been a certain way/ has been happening for a time".
Let's see another example:
Julio no estudia desde hace 30 años - Julio hasn't studied for 30 years.
We're using the verb in present tense + desde hace
Julio no ha estudiado en los últimos 30 años - Julio hasn't studied in the last 30 years.
Here we use perfect tense, ha estudiado.
Lleva sin estudiar 30 años - Has been without studying for 30 years.
And here we use llevar in present tense.
Estudia desde 1991 - He studies since 1991.
Estudia desde hace 30 años - He has studied for 30 years.
Ha estudiado 30 años - He has studied 30 years.
Lleva estudiando 30 años - He has been studying for 30 years.
Hace - ago (goes before the time that has passed)
Nos casamos hace tres años - We married 3 years ago.
Visité España hace tres años - I visited Spain 3 years ago.
Desde - since (position just like in English, specific point in time in the past)
Estamos casados desde 2020 - We're married since 2020.
No visitamos España desde 2019 - We don't visit Spain since 2019.
Desde hace - Something has been a certain way or have been happening since... (not specific point in time but the duration of time).
Present in Spanish but translates into past in English (have been/have done).
Estamos casados desde hace dos años - We've been married for 2 years. Visitamos España desde hace tres años- We've been visiting Spain for 3 years.
And the optional hace...que no, for "I (or someone else) haven't done something for ... a certain amount of time", like "hace dos días que no te veo", I haven't seen you for two days.
Hopefully you understand this a little bit better now, check the post on llevar to learn about that too. Pay attention to examples you find and, like always, give it practice and time.
¡Hasta pronto! :)