SQLite
 sql >> Base de Dados >  >> RDS >> SQLite

Subtrair anos de uma data no SQLite


No SQLite, podemos usar o DATE() função para subtrair um ou mais anos de uma data.

Para valores de data e hora, podemos usar o DATETIME() função.

Exemplo


Aqui está um exemplo que usa o DATE() função:
SELECT DATE('2050-08-21', '-1 year');

Resultado:
2049-08-21

Se quiséssemos adicionar o valor, poderíamos substituir - com + , ou omiti-lo completamente.

Podemos especificar os anos na forma plural ou não plural. Em outras palavras, year é equivalente a years :
SELECT 
    DATE('2050-08-21', '-5 year') AS year,
    DATE('2050-08-21', '-5 years') AS years;

Resultado:
year        years     
----------  ----------
2045-08-21  2045-08-21

Especificado em meses ou dias


Alternativamente, podemos subtrair anos com base em um número de meses ou dias:
SELECT 
    DATE('2050-08-21', '-12 months') AS "12 Months",
    DATE('2050-08-21', '-365 days') AS "365 Days";

Resultado:
12 Months   365 Days  
----------  ----------
2049-08-21  2049-08-21

O DATETIME() Função


Este exemplo usa o DATETIME() função para fazer a mesma coisa:
SELECT DATETIME('2050-08-21', '-1 year');

Resultado:
2049-08-21 00:00:00

Nesse caso, passei um valor de data, mas a função retornou um valor de data e hora.

Aqui está outro exemplo, desta vez com um valor datetime:
SELECT DATETIME('2050-08-21 18:30:45', '-1 year');

Resultado:
2049-08-21 18:30:45