MySQL memiliki PERIOD_ADD()
fungsi yang memungkinkan Anda untuk menambahkan beberapa bulan ke periode tertentu. Ini mengembalikan nilai dalam format YYYYMM .
Artikel ini memberikan contoh untuk mendemonstrasikan cara kerjanya.
Sintaks
Sintaksnya seperti ini:
PERIOD_ADD(P,N)
Dimana P
adalah titik, dan N
adalah jumlah bulan untuk ditambahkan.
Perhatikan bahwa, meskipun fungsi ini tampaknya menambahkan bulan ke tanggal, argumen periode sebenarnya bukan nilai tanggal.
Contoh 1 – Penggunaan Dasar
Berikut ini contoh dasarnya.
PILIH PERIOD_ADD(202101,2);
Hasil:
+----------------------+| PERIOD_ADD(202101,2) |+----------------------+| 202103 |+------------+
Jadi dalam hal ini, kami menambahkan dua bulan ke periode tersebut.
Contoh 2 – Nilai Negatif
Berikut ini contoh yang menambahkan jumlah bulan negatif.
PILIH PERIOD_ADD(202101,-2);
Hasil:
+------------------------+| PERIOD_ADD(202101,-2) |+-----------------------+| 202011 |+-----------------------+
Contoh 3 – Dua Digit Tahun
Contoh ini menggunakan komponen tahun dua digit.
PILIH PERIOD_ADD(2101,2);
Hasil:
+--------------------+| PERIOD_ADD(2101,2) |+------+| 202103 |+---------+
Anda akan melihat bahwa hasilnya masih menggunakan tahun empat digit (meskipun kami memberikan argumen periode sebagai tahun dua digit).
Contoh 4 – Menggunakan Tanggal Saat Ini
Contoh ini memperoleh periode dari tanggal saat ini. Kemudian menambahkan satu bulan ke periode itu.
PILIH CURDATE( ) SEBAGAI 'Tanggal Saat Ini', EXTRACT(YEAR_MONTH FROM CURDATE( )) SEBAGAI 'Periode Saat Ini', PERIOD_ADD(EXTRACT(YEAR_MONTH FROM CURDATE( )), 1) SEBAGAI 'Periode Berikutnya';
Hasil:
+-------------+----------------+-------------+ | Tanggal Sekarang | Periode Saat Ini | Periode Berikutnya |+--------------+----------------+-------------+ | 2018-06-30 | 201806 | 201807 |+------------+----------------+-------------+Contoh 5 – Contoh Basis Data
Berikut ini contoh kueri database.
GUNAKAN 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 paymentWHERE payment_id =1;Hasil:
+---------------------+----------------+------- -------+| Tanggal Pembayaran | Periode Pembayaran | Pembayaran Berikutnya |+---------------------+----------------+------- -------+| 2005-05-25 11:30:37 | 200505 | 200605 |+---------------------+----------------+-------- ------+