Menambah Interval Pada Tanggal dan Waktu - MySQL Dasar #23

Menambah Interval Pada Tanggal dan Waktu - MySQL Dasar #23


Lihat [ Daftar Isi : Tanggal dan Waktu]

MySQL memiliki sebuah fungsi yang secara spesifik digunakan untuk menambah atau mengurangi interval pada sebuah nilai tanggal ataupun waktu. Fungsi tersebut adalah DATE_ADD() untuk menambah interval tanggal/waktu kedepan dan DATE_SUB() untuk mengurangi interval tanggal/waktu kebelakang. Selain menggunakan fungsi date add dan date sub Anda bisa menggunakan fungsi TO_DAYS dan FROM DAYS

Untuk waktu sebenarnya bisa menggunakan alternatif lain seperti yang sudah dibahas pada artikel sebelumnya seperti misalnya untuk menambah interval waktu Anda bisa mengkonversi terlebih dahulu nilai waktu menggunakan fungsi TIME_TO_SEC kemudian ditambah dengan nilai detik waktu selanjutnya dikonversi menjadi nilai utuh menggunakan SEC_TO_TIME

Anda dapat menambah interval untuk waktu perjam/menit/detik, dan tanggal perhari/bulan/tahun. Nilai interval cukup didefinisikan didalam fungsi DATE_ADD atau DATE_SUB

Menambah dan Mengurangi Interval Tanggal

Fungsi DATE_SUB dapat diterapakan pada nilai DATE, TIME, atau DATE_TIME untuk menambah interval waktu dari tanggal saat ini atau nilai tanggal pada data menjadi lebih besar dari sebelumnya. Perhatikan contoh berikut :

MariaDB [root93]> SELECT d AS 'TANGGAL AWAL', DATE_ADD(d, INTERVAL 1 DAY) AS 'DATE_ADD()', DATE_SUB(d,INTERVAL 2 DAY) AS 'DATE SUB' FROM tanggal;
+--------------+------------+------------+
| TANGGAL AWAL | DATE_ADD() | DATE SUB   |
+--------------+------------+------------+
| 1980-02-03   | 1980-02-04 | 1980-02-01 |
| 1990-10-12   | 1990-10-13 | 1990-10-10 |
| 2000-12-21   | 2000-12-22 | 2000-12-19 |
| 2012-12-12   | 2012-12-13 | 2012-12-10 |
| 2022-04-24   | 2022-04-25 | 2022-04-22 |
| 2022-04-23   | 2022-04-24 | 2022-04-21 |
| 2022-04-25   | 2022-04-26 | 2022-04-23 |
+--------------+------------+------------+
7 rows in set (0.00 sec)

Menambah dan Mengurangi Interval Waktu

Selanjutnya interval waktu bisa ditambah jam atau nilai menitnya dengan tambahan parameter HOUR, MINUTE, SECOND untuk merepresentasikan nilai jam/menit/detik.


Perhatikan contoh dibawah ini, dimana Saya akan menambah interval waktu pada t1 sebanyak 2 jam dan t2 menguranginya sebanyak 3 jam

MariaDB [root93]> SELECT t1, t2, DATE_ADD(t1, INTERVAL 2 HOUR), DATE_SUB(t2, INTERVAL 3 HOUR) FROM waktu;
+----------+----------+-------------------------------+-------------------------------+
| t1       | t2       | DATE_ADD(t1, INTERVAL 2 HOUR) | DATE_SUB(t2, INTERVAL 3 HOUR) |
+----------+----------+-------------------------------+-------------------------------+
| 15:00:00 | 17:00:00 | 17:00:00                      | 14:00:00                      |
| 08:02:00 | 14:30:00 | 10:02:00                      | 11:30:00                      |
| 13:20:21 | 21:14:01 | 15:20:21                      | 18:14:01                      |
| 21:00:23 | 19:03:20 | 23:00:23                      | 16:03:20                      |
| 23:00:23 | 21:03:20 | 25:00:23                      | 18:03:20                      |
| 14:30:23 | 08:24:36 | 16:30:23                      | 05:24:36                      |
| 15:08:02 | 13:24:36 | 17:08:02                      | 10:24:36                      |
+----------+----------+-------------------------------+-------------------------------+

Selanjutnya disini kita akan menambah interval menit pada t1 sebanyak 10 menit dan t2 menguranginya 10 menit.

MariaDB [root93]> SELECT t1, t2, DATE_ADD(t1, INTERVAL 10 MINUTE), DATE_SUB(t2, INTERVAL 10 MINUTE) FROM waktu;
+----------+----------+----------------------------------+----------------------------------+
| t1 | t2 | DATE_ADD(t1, INTERVAL 10 MINUTE) | DATE_SUB(t2, INTERVAL 10 MINUTE) |
+----------+----------+----------------------------------+----------------------------------+
| 15:00:00 | 17:00:00 | 15:10:00 | 16:50:00 |
| 08:02:00 | 14:30:00 | 08:12:00 | 14:20:00 |
| 13:20:21 | 21:14:01 | 13:30:21 | 21:04:01 |
| 21:00:23 | 19:03:20 | 21:10:23 | 18:53:20 |
| 23:00:23 | 21:03:20 | 23:10:23 | 20:53:20 |
| 14:30:23 | 08:24:36 | 14:40:23 | 08:14:36 |
| 15:08:02 | 13:24:36 | 15:18:02 | 13:14:36 |
+----------+----------+----------------------------------+----------------------------------+
7 rows in set (0.00 sec)

Selanjutnya penambahan interval tanggal atau waktu/jam dengan kombinasi keduanya yaitu HOUR_MINUTE untuk jam dan menit, DAY_HOUR untuk hari dan jam

MariaDB [root93]> SELECT t1, DATE_ADD(t1, INTERVAL '01:30' HOUR_MINUTE) FROM waktu;
+----------+--------------------------------------------+
| t1       | DATE_ADD(t1, INTERVAL '01:30' HOUR_MINUTE) |
+----------+--------------------------------------------+
| 15:00:00 | 16:30:00                                   |
| 08:02:00 | 09:32:00                                   |
| 13:20:21 | 14:50:21                                   |
| 21:00:23 | 22:30:23                                   |
| 23:00:23 | 24:30:23                                   |
| 14:30:23 | 16:00:23                                   |
| 15:08:02 | 16:38:02                                   |
+----------+--------------------------------------------+
7 rows in set (0.00 sec)

MariaDB [root93]> SELECT dt, DATE_ADD(dt, INTERVAL '01:30' HOUR_MINUTE), DATE_ADD(dt, INTERVAL '2 3' DAY_HOUR) FROM tanggal_waktu;
+---------------------+--------------------------------------------+---------------------------------------+
| dt                  | DATE_ADD(dt, INTERVAL '01:30' HOUR_MINUTE) | DATE_ADD(dt, INTERVAL '2 3' DAY_HOUR) |
+---------------------+--------------------------------------------+---------------------------------------+
| 1970-01-01 00:00:00 | 1970-01-01 01:30:00                        | 1970-01-03 03:00:00                   |
| 1993-07-30 10:20:31 | 1993-07-30 11:50:31                        | 1993-08-01 13:20:31                   |
| 2000-02-01 17:20:31 | 2000-02-01 18:50:31                        | 2000-02-03 20:20:31                   |
| 2021-01-23 21:20:31 | 2021-01-23 22:50:31                        | 2021-01-26 00:20:31                   |
+---------------------+--------------------------------------------+---------------------------------------+
4 rows in set (0.00 sec)

Baca selanjutnya : Menghitung Interval Antar Tanggal - MySQL Dasar #24

0 Response to "Menambah Interval Pada Tanggal dan Waktu - MySQL Dasar #23"

Post a Comment

Silahkan untuk meninggalkan komentar, santai saja dan mulailah berkomentar...