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

Come aggiungere un mese a una data in SQLite

Problema:

Vorresti aggiungere un mese a una data data in un database SQLite.

Esempio:

Il nostro database ha una tabella denominata production con i dati nelle colonne id , product e start_date .

id prodotto data_inizio
1 scrivania 17-08-2019
2 poltrona 17-07-2019
3 divano 31-10-2019

I prodotti hanno una nuova data di inizio della produzione che è un mese più tardi rispetto a quanto indicato sopra. Prendiamo i nomi dei prodotti e la loro nuova data di inizio.

Ecco la domanda che scriveresti:

Soluzione:

SELECT product,
  DATE(start_date,'+1 months')
  AS new_start_date
FROM production;

Ecco il risultato della query:

id prodotto nuova_data_di_inizio
1 scrivania 17-09-2019
2 poltrona 17-08-2019
3 divano 01-12-2019

Discussione:

Usa SQLite DATE() funzione per aggiungere un mese a una data data (o data e ora). Gli argomenti richiesti includono la data/data e ora da modificare e uno o più modificatori con valori che indicano quante unità aggiungere o sottrarre.

Il primo argomento può essere un'espressione che restituisce un valore data/ora o una colonna data/ora. Nel nostro esempio, è la colonna start_date .

I modificatori indicano quale (e quanto) unità di tempo aggiungere/sottrarre. Nel nostro esempio, utilizziamo il modificatore "+1 mese '. Il modificatore inizia con più o meno, indicando addizione o sottrazione. Poi c'è un valore (es. 1) e l'unità (es. mesi , anni , giorni , ecc.) Se scrivi "-2 giorni ', sottrai 2 giorni da una data data.

Importante: Alcuni modificatori richiedono una sintassi leggermente diversa da quella mostrata sopra. Ad esempio, il "giorno della settimana ' il modificatore viene prima del valore (ad esempio DATE(start_date,'weekday 3') ). Altri modificatori non accettano valori, come "inizio mese". ', che mostra il primo giorno del mese per una data data (ad esempio DATE(start_date,' start of month') ). Puoi trovare informazioni precise sui modificatori di data e ora nella documentazione di SQLite.

Abbiamo chiamato la nuova colonna contenente la data di inizio aggiornata new_start_date . La nuova data di inizio della produzione per il desk è 2019-09-17 , un mese dopo la data originale del 2019-08-17 . Si noti che per il 2019-10-31 , la nuova data è 2019-12-01; questo perché novembre ha 30 giorni, non 31.


No