SQLite
 sql >> Database >  >> RDS >> SQLite

Sottrai anni da una data in SQLite

In SQLite, possiamo usare DATE() funzione per sottrarre uno o più anni da una data.

Per i valori datetime, possiamo usare DATETIME() funzione.

Esempio

Ecco un esempio che utilizza DATE() funzione:

SELECT DATE('2050-08-21', '-1 year');

Risultato:

2049-08-21

Se volessimo aggiungere l'importo, potremmo sostituire - con + o ometterlo del tutto.

Possiamo specificare gli anni in forma plurale o non plurale. In altre parole, year è equivalente a years :

SELECT 
    DATE('2050-08-21', '-5 year') AS year,
    DATE('2050-08-21', '-5 years') AS years;

Risultato:

year        years     
----------  ----------
2045-08-21  2045-08-21

Specificato in mesi o giorni

In alternativa possiamo sottrarre anni in base a un numero di mesi o giorni:

SELECT 
    DATE('2050-08-21', '-12 months') AS "12 Months",
    DATE('2050-08-21', '-365 days') AS "365 Days";

Risultato:

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

Il DATETIME() Funzione

Questo esempio utilizza DATETIME() funzione per fare la stessa cosa:

SELECT DATETIME('2050-08-21', '-1 year');

Risultato:

2049-08-21 00:00:00

In questo caso, ho passato un valore di data, ma la funzione ha restituito un valore di data e ora.

Ecco un altro esempio, questa volta con un valore datetime:

SELECT DATETIME('2050-08-21 18:30:45', '-1 year');

Risultato:

2049-08-21 18:30:45