Cara menambah tanggal di mysql

Saya punya tabel di MySQL. Seperti apa pernyataan sql yang ingin ditambahkan katakanlah 2 hari ke nilai tanggal saat ini dalam tabel?

UPDATE classes 
SET 
date = date + 1
where id = 161

ini menambahkan satu detik ke nilai, saya tidak ingin memperbarui waktu, saya ingin menambahkan dua hari?

Dengan asumsi bidang Anda adalah tipe date [atau serupa]:

SELECT DATE_ADD[`your_field_name`, INTERVAL 2 DAY] 
FROM `table_name`;

Dengan contoh yang Anda berikan, tampilannya bisa seperti ini:

UPDATE classes 
SET `date` = DATE_ADD[`date` , INTERVAL 2 DAY]
WHERE `id` = 161;

Pendekatan ini juga bekerja dengan datetime.

UPDATE table SET nameofdatefield = ADDDATE[nameofdatefield, 2] WHERE ...

Kueri ini bagus untuk mengambil nilai antara tanggal saat ini dan 3 tanggal berikutnya

SELECT * FROM tableName
WHERE columName BETWEEN CURDATE[] AND DATE_ADD[CURDATE[], INTERVAL 3 DAY]

Ini pada akhirnya akan menambah 3 hari buffer tambahan ke tanggal saat ini.

update tablename set coldate=DATE_ADD[coldate, INTERVAL 2 DAY]

Untuk kebutuhan anda:

UPDATE classes 
SET `date` = DATE_ADD[`date`, INTERVAL 2 DAY]
WHERE id = 161

SELECT DATE_ADD[CURDATE[], INTERVAL 2 DAY]

 DATE_ADD[FROM_DATE_HERE, INTERVAL INTERVAL_TIME_HERE DAY] 

akan memberikan Tanggal setelah menyesuaikan INTERVAL

misalnya.

DATE_ADD[NOW[], INTERVAL -1 DAY] for deducting 1 DAY from current Day
DATE_ADD[NOW[], INTERVAL 2 DAY]  for adding 2 Days

Anda bisa menggunakan like

UPDATE classes WHERE date=[DATE_ADD[date, INTERVAL 1 DAY]] WHERE id=161

SET date = DATE_ADD[ fieldname, INTERVAL 2 DAY ]

Anda dapat meninggalkan fungsi date_add.

UPDATE `table` 
SET `yourdatefield` = `yourdatefield` + INTERVAL 2 DAY
WHERE ...

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 : //www.w3schools.com/sql/func_mysql_date_add.asp

Mungkin cukup sekian, semoga bermanfaat

Rizky Pratama. Tinggal di Bekasi, Jawa Barat. Seorang IT di salah satu perusahaan IT. Pengguna Mac, Linux dan Windows
Selain sebagai penulis di blog ini, saya juga penulis di blog saya yang lain, yaitu //pratama.biz.id

Apa itu timestamp di MySQL?

Fungsi Date TIMESTAMP[] Pada MySQL Fungsi TIMESTAMP[] digunakan untuk dapat mengembalikan nilai datetime berdasarkan tanggal atau nilai datetime. Catatan: Jika ada dua argumen dengan fungsi ini, pertama-tama menambahkan argumen kedua ke yang pertama, lalu mengembalikan nilai datetime.

Tanggal menggunakan tipe data apa?

Tipe Data Date Time dalam MySQL atau tipe data tanggal digunakan untuk menyimpan dan memanipulasi data yang berkaitan dengan operasi tanggal dan waktu. Tipe data date time atau tanggal terdiri dari 5 [lima] jenis tipe data yaitu DATE, TIME, DATETIME, TIMESTAMP, dan YEAR.

Apa itu date dalam database?

Tipe data Date digunakan untuk menyimpan tanggal. Secara umum penyimpanan tipe data date dengan format Y-m-d / Tahun-Bulan-Tanggal, artinya dari tahun ke bulan dengan pemisah tanda [-]. Contohnya 2018-08-09. TIME merupakan tipe data untuk menyimpan ke dalam database MySQL yang berupa waktu / Jam.

Perintah apa yang digunakan untuk mendapatkan nilai waktu sekarang pada MySQL?

now[] Fungsi now[] digunakan untuk menampilkan tanggal dan waktu sekarang. Catatan : MySQL memiliki format tanggal “Y-m-d” atau “Year-Month-Date“. Jika Anda memiliki data 2 April 2013, maka di dalam MySQL akan ditulis 2013-04-02.

Bài mới nhất

Chủ Đề