SQLite
 sql >> Base de données >  >> RDS >> SQLite

Ajouter des mois à une date dans SQLite

Dans SQLite, nous pouvons utiliser le DATE() fonction pour ajouter un ou plusieurs mois à une date.

Lorsque nous traitons des valeurs datetime, nous pouvons utiliser le DATETIME() fonction.

Exemple

Voici un exemple qui utilise le DATE() fonction :

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

Résultat :

2050-09-21

Si nous voulions soustraire le montant, nous pourrions remplacer + avec - .

Aussi, en omettant le + une partie entraîne l'ajout du montant, comme si nous avions utilisé + :

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

Résultat :

2050-09-21

Nous pouvons spécifier les mois au pluriel ou non pluriel. En d'autres termes, month est équivalent à month :

SELECT 
    DATE('2050-08-21', '+3 month') AS month,
    DATE('2050-08-21', '+3 months') AS months;

Résultat :

month       months    
----------  ----------
2050-11-21  2050-11-21

Spécifié en jours

Nous pouvons également ajouter un mois ou plus à la date en fonction du nombre de jours :

SELECT DATE('2050-08-21', '+31 days');

Résultat :

2050-09-21

Cependant, gardez à l'esprit que cela nécessitera que vous sachiez exactement combien de jours sont appropriés pour les mois concernés. Certains mois ont 30 jours, d'autres 31 et février en a 28 ou 29, selon qu'il s'agit d'une année bissextile ou non.

Avec le month /month modificateur, SQLite normalise la date en fonction du nombre de jours du ou des mois concernés.

Voici une comparaison des mois et des jours lors de l'ajout d'une date en mars :

SELECT 
    DATE('2050-03-31', '+1 month') AS "1 month",
    DATE('2050-03-31', '+30 days') AS "30 days",
    DATE('2050-03-31', '+31 days') AS "31 days";

Résultat :

1 month     30 days     31 days   
----------  ----------  ----------
2050-05-01  2050-04-30  2050-05-01

Et voici la même comparaison lors de l'ajout d'une date en septembre :

SELECT 
    DATE('2050-09-30', '+1 month') AS "1 month",
    DATE('2050-09-30', '+30 days') AS "30 days",
    DATE('2050-09-30', '+31 days') AS "31 days";

Résultat :

1 month     30 days     31 days   
----------  ----------  ----------
2050-10-30  2050-10-30  2050-10-31

Le DATETIME() Fonction

Voici un exemple qui montre comment utiliser le DATETIME() fonction pour ajouter un mois à une valeur datetime :

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

Résultat :

2050-09-21 00:00:00

Dans ce cas, j'ai passé une valeur de date, mais la fonction a renvoyé une valeur datetime.

Voici un autre exemple, cette fois avec une valeur datetime :

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

Résultat :

2050-09-21 18:30:45