En PostgreSQL, podemos usar - operador para restar uno o más años de una fecha.
Ejemplos
Podemos especificar intervalos al restar de fechas. Por ejemplo, podemos usar year o years para restar uno o más años de una fecha:
SELECT date '2030-01-20' - interval '1 year'; Resultado:
2029-01-20 00:00:00
Y en forma plural:
SELECT date '2030-01-20' - interval '5 years'; Resultado:
2025-01-20 00:00:00
Especificado en meses
También podemos usar el número equivalente en meses (o semanas o días para el caso):
SELECT date '2030-01-20' - interval '12 months'; Resultado:
2029-01-20 00:00:00
También podemos usar un número entero al especificarlo en días:
SELECT date '2030-01-20' - 365; Resultado:
2029-01-20
O así:
SELECT date '2030-01-20' - integer '365'; Resultado:
2029-01-20
Adición de valores negativos
Alternativamente, podemos agregar un valor negativo a la fecha. En este caso, podemos usar un valor negativo con el + firmar:
Ejemplo:
SELECT date '2030-01-20' + interval '-7 years'; Resultado:
2023-01-20 00:00:00
Podemos hacer lo mismo con la opción de número entero:
SELECT date '2030-01-20' + integer '-365'; Resultado:
2029-01-20