Tips Insert Date dengan Interval pada MySQL

Posted by

Beberapa hari ini saya sedang disibukkan dengan tugas kuliah yang menumpuk. Terlebih untuk tugas project UAS mata kuliah pemrograman dimana harus membuat 1 buah program yang bisa melakukan CRUD (Create, Read, Update, Delete) data ke database MySQL.

Nah untuk project tersebut saya membuat program mengenai input data domain. Saya buat program dengan mengacu ke situasi aslinya, yaitu misal ketika registrasi domain, maka nanti nama domain tersebut akan expired 1 tahun kemudian. Berarti kita dari awal harus langsung insert data date ke MySQL dengan set date nya 1 tahun ke depan dari tanggal sekarang.

Baca Juga : Mengatasi Error mysqldump gtid Saat Menjalankan mysqldump

Untuk contohnya disini saya sudah buat database list_domain dengan table domain

MariaDB [list_domain]> show tables;
+-----------------------+
| Tables_in_list_domain |
+-----------------------+
| domain                |
+-----------------------+
1 row in set (0.00 sec)

MariaDB [list_domain]> desc domain;
+-------------+-------------+------+-----+---------+-------+
| Field       | Type        | Null | Key | Default | Extra |
+-------------+-------------+------+-----+---------+-------+
| id          | varchar(2)  | NO   | PRI | NULL    |       |
| nama_domain | varchar(50) | YES  |     | NULL    |       |
| tgl_expired | date        | YES  |     | NULL    |       |
+-------------+-------------+------+-----+---------+-------+
3 rows in set (0.00 sec)

Untuk contoh syntax insert nya dengan set date manual seperti berikut

MariaDB [list_domain]> insert into domain (id,nama_domain,tgl_expired) values('1','rizkypratama.id','2019-07-11');

Baca Juga : Backup dan Restore Database SQLite

Itulah syntax jika kita insert data date dengan set date nya manual, gimana kalau sesuai case saya diatas tadi, ingin set date nya langsung 1 tahun kedepan, bisa dengan syntax seperti berikut

MariaDB [list_domain]> insert into domain (id,nama_domain,tgl_expired) values('2','rizkypratama.net',CURDATE() + INTERVAL 1 YEAR);

CURDATE() = Untuk mengambil value date sesuai date saat itu juga, current date

INTERVAL 1 YEAR = Untuk set date supaya ditambah 1 tahun dari tanggal hari ini, misal tanggal hari ini yaitu 11-07-2019, maka ditambah 1 tahun menjadi 11-07-2020

Untuk hasilnya nanti seperti berikut

MariaDB [list_domain]> select * from domain;
+----+------------------+-------------+
| id | nama_domain      | tgl_expired |
+----+------------------+-------------+
| 1  | rizkypratama.id  | 2019-07-11  |
| 2  | rizkypratama.net | 2020-07-11  |
+----+------------------+-------------+

Kalau misal mau set date 1 bulan kedepan, tinggal diubah saja YEAR menjadi MONTH, atau DAY jika hanya set beberapa hari kedepan saja.

Ref : https://www.w3schools.com/sql/func_mysql_date_add.asp

Mungkin cukup sekian, semoga bermanfaat

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.