SQLiteでは、DATE()
を使用できます 日付に1か月以上を追加する関数。
日時の値を処理するときは、DATETIME()
を使用できます 機能。
例
DATE()
を使用する例を次に示します。 機能:
SELECT DATE('2050-08-21', '+1 month');
結果:
2050-09-21
金額を差し引く場合は、+
を置き換えることができます -
を使用 。
また、+
を省略します 一部の場合、+
を使用したかのように金額が追加されます :
SELECT DATE('2050-08-21', '1 month');
結果:
2050-09-21
月は複数形または非複数形で指定できます。つまり、month
months
に相当します :
SELECT
DATE('2050-08-21', '+3 month') AS month,
DATE('2050-08-21', '+3 months') AS months;
結果:
month months ---------- ---------- 2050-11-21 2050-11-21
日数で指定
または、日数に基づいて日付に1か月以上を追加することもできます。
SELECT DATE('2050-08-21', '+31 days');
結果:
2050-09-21
ただし、これには、関係する月に適切な日数を正確に知る必要があることに注意してください。うるう年かどうかに応じて、30日、31日、2月が28日または29日になる月もあります。
month
/months
修飾子であるSQLiteは、関連する月の日数に基づいて日付を正規化します。
3月の日付に追加する場合の月と日を比較すると、次のようになります。
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";
結果:
1 month 30 days 31 days ---------- ---------- ---------- 2050-05-01 2050-04-30 2050-05-01
そして、9月の日付に追加するときの同じ比較があります:
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";
結果:
1 month 30 days 31 days ---------- ---------- ---------- 2050-10-30 2050-10-30 2050-10-31
DATETIME()
機能
DATETIME()
の使用方法を示す例を次に示します。 日時の値に月を追加する関数:
SELECT DATETIME('2050-08-21', '+1 month');
結果:
2050-09-21 00:00:00
この場合、日付値を渡しましたが、関数は日時値を返しました。
別の例を次に示します。今回は日時の値を使用します:
SELECT DATETIME('2050-08-21 18:30:45', '+1 month');
結果:
2050-09-21 18:30:45