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