MySQLにはPERIOD_ADD()
があります 特定の期間に月数を追加できる関数。 YYYYMMの形式で値を返します 。
この記事では、その仕組みを示す例を示します。
構文
構文は次のようになります:
PERIOD_ADD(P,N)
ここでP
はピリオドであり、N
追加する月数です。
この関数は日付に月を追加しているように見えますが、期間引数は実際には日付値ではないことに注意してください。
例1-基本的な使用法
これが基本的な例です。
SELECT PERIOD_ADD(202101,2);
結果:
+----------------------+ | PERIOD_ADD(202101,2) | +----------------------+ | 202103 | +----------------------+
したがって、この場合、期間に2か月を追加しました。
例2–負の値
負の月数を追加する例を次に示します。
SELECT PERIOD_ADD(202101,-2);
結果:
+-----------------------+ | PERIOD_ADD(202101,-2) | +-----------------------+ | 202011 | +-----------------------+
例3–2桁の年
この例では、2桁の年コンポーネントを使用しています。
SELECT PERIOD_ADD(2101,2);
結果:
+--------------------+ | PERIOD_ADD(2101,2) | +--------------------+ | 202103 | +--------------------+
結果はまだ4桁の年を使用していることに気付くでしょう(期間引数を2桁の年として提供したにもかかわらず)。
例4–現在の日付を使用する
この例では、現在の日付から期間を導き出します。その後、その期間に1か月が追加されます。
SELECT CURDATE( ) AS 'Current Date', EXTRACT(YEAR_MONTH FROM CURDATE( )) AS 'Current Period', PERIOD_ADD(EXTRACT(YEAR_MONTH FROM CURDATE( )), 1) AS 'Next Period';
結果:
+--------------+----------------+-------------+ | Current Date | Current Period | Next Period | +--------------+----------------+-------------+ | 2018-06-30 | 201806 | 201807 | +--------------+----------------+-------------+
例5–データベースの例
これがデータベースにクエリを実行する例です。
USE sakila; SELECT payment_date AS 'Payment Date', EXTRACT(YEAR_MONTH FROM payment_date) AS 'Payment Period', PERIOD_ADD(EXTRACT(YEAR_MONTH FROM payment_date), 12) AS 'Next Payment' FROM payment WHERE payment_id = 1;
結果:
+---------------------+----------------+--------------+ | Payment Date | Payment Period | Next Payment | +---------------------+----------------+--------------+ | 2005-05-25 11:30:37 | 200505 | 200605 | +---------------------+----------------+--------------+