Di MySQL, Anda dapat menggunakan SUBDATE()
fungsi untuk mengurangi jumlah waktu tertentu dari tanggal. Misalnya, Anda dapat menggunakannya untuk mengurangi 10 hari dari tanggal tertentu. Anda dapat menentukan apakah akan mengurangi hari, minggu, bulan, kuartal, tahun, dll. Anda juga dapat mengurangi nilai waktu, seperti detik, mikrodetik, dll.
Saat menggunakan sintaks pertama yang tercantum di bawah ini, SUBDATE()
fungsi adalah sinonim untuk DATE_SUB()
fungsi (mirip dengan cara ADDDATE()
adalah sinonim untuk DATE_ADD()
saat menggunakan sintaks yang sama).
Sintaks
Anda dapat menggunakan fungsi ini dengan dua cara berikut:
SUBDATE(date,INTERVAL expr unit)
Atau
SUBDATE(expr,days)
Contoh 1 – Sintaks Pertama
Berikut adalah contoh penggunaan bentuk pertama dari sintaks.
SELECT SUBDATE('2018-05-10', INTERVAL 2 DAY) AS Result;
Hasil:
+------------+ | Result | +------------+ | 2018-05-08 | +------------+
Contoh ini mengurangi 2 hari dari tanggal yang diberikan oleh argumen pertama.
Contoh 2 – Sintaks Kedua
Contoh ini dapat ditulis ulang sebagai berikut:
SELECT SUBDATE('2018-05-10', 2) AS Result;
Hasil:
+------------+ | Result | +------------+ | 2018-05-08 | +------------+
Ini menggunakan bentuk kedua dari sintaks. Argumen kedua adalah bilangan bulat yang mewakili berapa hari harus dikurangi dari tanggal yang diberikan oleh argumen pertama.
Seperti yang disebutkan, SUBDATE()
adalah sinonim untuk DATE_SUB()
, tetapi hanya saat sintaks pertama digunakan. Sintaks kedua hanya tersedia di SUBDATE()
.
Contoh 3 – Unit Tanggal Lainnya
Salah satu manfaat dari bentuk pertama dari sintaks ini adalah Anda dapat menentukan apakah akan mengurangi hari, minggu, bulan, tahun, dll. Berikut beberapa contohnya.
SELECT '2018-05-10' AS 'Start Date', SUBDATE('2018-05-10', INTERVAL 2 WEEK) AS '-2 Weeks', SUBDATE('2018-05-10', INTERVAL 2 MONTH) AS '-2 Months', SUBDATE('2018-05-10', INTERVAL 2 QUARTER) AS '-2 Quarters', SUBDATE('2018-05-10', INTERVAL 2 YEAR) AS '-2 Years';
Hasil:
+------------+------------+------------+-------------+------------+ | Start Date | -2 Weeks | -2 Months | -2 Quarters | -2 Years | +------------+------------+------------+-------------+------------+ | 2018-05-10 | 2018-04-26 | 2018-03-10 | 2017-11-10 | 2016-05-10 | +------------+------------+------------+-------------+------------+
Contoh 4 – Satuan Waktu
Anda juga dapat menggunakan SUBDATE()
untuk mengurangi unit waktu dari nilai tanggal/waktu. Ini contohnya.
SELECT SUBDATE('2018-05-10 01:00:00', INTERVAL 2 HOUR) AS Result;
Hasil:
+---------------------+ | Result | +---------------------+ | 2018-05-09 23:00:00 | +---------------------+
Nilai yang Diharapkan
Tabel berikut menunjukkan nilai satuan yang valid dan format yang diharapkan.
unit Nilai | expr yang diharapkan Format |
---|---|
MIKROSEKONDA | MIKROSEKON |
DETIK | DETIK |
MENIT | MENIT |
JAM | JAM |
HARI | HARI |
MINGGU | MINGGU |
BULAN | BULAN |
KUARTA | PEREMPAT |
TAHUN | TAHUN |
SECOND_MICROSECOND | ‘SECONDS.MICROSECONDS’ |
MINUTE_MICROSECOND | 'MENIT:DETIK.MIKROSEKON' |
MINUTE_SECOND | 'MENIT:DETIK' |
HOUR_MICROSECOND | ‘JAM:MENIT:DETIK.MICROSECONDS’ |
HOUR_SECOND | 'JAM:MENIT:DETIK' |
HOUR_MINUTE | 'JAM:MENIT' |
DAY_MICROSECOND | 'HARI JAM:MINUTES:SECONDS.MICROSECONDS' |
HARI_DETIK | 'HARI JAM:MENIT:DETIK' |
HARI_MINUTE | 'HARI JAM:MENIT' |
HARI_JAM | 'JAM HARI' |
BULAN_TAHUN | 'TAHUN-BULAN' |