In SQLite können wir das DATE()
verwenden Funktion, um einem Datum einen oder mehrere Monate hinzuzufügen.
Wenn wir es mit Datetime-Werten zu tun haben, können wir DATETIME()
verwenden Funktion.
Beispiel
Hier ist ein Beispiel, das das DATE()
verwendet Funktion:
SELECT DATE('2050-08-21', '+1 month');
Ergebnis:
2050-09-21
Wenn wir den Betrag subtrahieren wollten, könnten wir +
ersetzen mit -
.
Auch das Weglassen des +
Teil führt dazu, dass der Betrag hinzugefügt wird, als ob wir +
verwendet hätten :
SELECT DATE('2050-08-21', '1 month');
Ergebnis:
2050-09-21
Wir können die Monate im Plural oder nicht im Plural angeben. Mit anderen Worten, month
entspricht months
:
SELECT
DATE('2050-08-21', '+3 month') AS month,
DATE('2050-08-21', '+3 months') AS months;
Ergebnis:
month months ---------- ---------- 2050-11-21 2050-11-21
Angegeben in Tagen
Wir können alternativ basierend auf einer Anzahl von Tagen einen Monat oder mehr zum Datum hinzufügen:
SELECT DATE('2050-08-21', '+31 days');
Ergebnis:
2050-09-21
Denken Sie jedoch daran, dass Sie dazu genau wissen müssen, wie viele Tage für die betreffenden Monate angemessen sind. Einige Monate haben 30 Tage, andere 31 und der Februar hat entweder 28 oder 29, je nachdem, ob es ein Schaltjahr ist oder nicht.
Mit dem month
/months
Modifizierer, normalisiert SQLite das Datum, basierend auf der Anzahl der Tage in dem/den relevanten Monat/en.
Hier ist ein Vergleich von Monaten und Tagen, wenn ein Datum im März hinzugefügt wird:
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";
Ergebnis:
1 month 30 days 31 days ---------- ---------- ---------- 2050-05-01 2050-04-30 2050-05-01
Und hier ist der gleiche Vergleich, wenn man ein Datum im September hinzufügt:
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";
Ergebnis:
1 month 30 days 31 days ---------- ---------- ---------- 2050-10-30 2050-10-30 2050-10-31
Der DATETIME()
Funktion
Hier ist ein Beispiel, das die Verwendung von DATETIME()
demonstriert Funktion zum Hinzufügen eines Monats zu einem datetime-Wert:
SELECT DATETIME('2050-08-21', '+1 month');
Ergebnis:
2050-09-21 00:00:00
In diesem Fall habe ich einen Datumswert übergeben, aber die Funktion hat einen Datumszeitwert zurückgegeben.
Hier ist ein weiteres Beispiel, diesmal mit einem datetime-Wert:
SELECT DATETIME('2050-08-21 18:30:45', '+1 month');
Ergebnis:
2050-09-21 18:30:45