Berikut daftar unit yang dapat digunakan dalam fungsi datetime dan interval MySQL.
unit Nilai | Diharapkan expr Format |
---|---|
MICROSECOND | MICROSECONDS |
SECOND | SECOND |
MINUTE | MINUTES |
HOUR | HOUR |
DAY | DAY |
WEEK | WEEK |
MONTH | MONTH |
QUARTER | QUARTERS |
YEAR | YEAR |
SECOND_MICROSECOND | 'SECONDS.MICROSECONDS' |
MINUTE_MICROSECOND | 'MINUTES:SECONDS.MICROSECONDS' |
MINUTE_SECOND | 'MINUTES:SECONDS' |
HOUR_MICROSECOND | 'HOURS:MINUTES:SECONDS.MICROSECONDS' |
HOUR_SECOND | 'HOURS:MINUTES:SECONDS' |
HOUR_MINUTE | 'HOURS:MINUTES' |
DAY_MICROSECOND | 'DAYS HOURS:MINUTES:SECONDS.MICROSECONDS' |
DAY_SECOND | 'DAYS HOURS:MINUTES:SECONDS' |
DAY_MINUTE | 'DAYS HOURS:MINUTES' |
DAY_HOUR | 'DAYS HOURS' |
YEAR_MONTH | 'YEARS-MONTHS' |
Unit ini dapat digunakan dengan +
dan -
operator saat melakukan aritmatika pada tanggal, dengan fungsi seperti ADDDATE()
, SUBDATE()
, DATE_ADD()
, DATE_SUB()
, dan EXTRACT()
.
Mereka juga dapat digunakan di ON SCHEDULE
klausa dari CREATE_EVENT()
dan ALTER_EVENT()
fungsi.
Sembilan unit pertama dapat digunakan dengan TIMESTAMPADD()
dan TIMESTAMPDIFF()
(kedua fungsi ini tidak mendukung unit gabungan pada saat penulisan).
Unit yang mengandung garis bawah adalah unit komposit. Ini terdiri dari lebih dari satu unit waktu dasar. Ini dapat dianggap sebagai cara singkat untuk menentukan beberapa unit sekaligus. Setiap unit dapat dipisahkan oleh karakter tanda baca apa pun.
Contoh
Berikut ini contoh menambahkan satu tahun ke ekspresi datetime:
SELECT '2035-01-01 01:30:45' + INTERVAL 1 YEAR;
Hasil:
2036-01-01 01:30:45
Dalam hal ini kami menggunakan +
operator untuk melakukan penambahan.
Fungsi Tanggal-waktu
Unit tanggal dan waktu dapat digunakan dengan berbagai fungsi tanggal.
Ini dia dengan DATE_ADD()
fungsi:
SELECT DATE_ADD('2035-01-01 01:30:45', INTERVAL 1 YEAR);
Hasil:
2036-01-01 01:30:45
Unit Komposit
Berikut ini contoh yang menggunakan unit komposit:
SELECT
DATE_ADD('2035-01-01 01:00:00', INTERVAL '1:2' YEAR_MONTH) AS "YEAR_MONTH",
DATE_ADD('2035-01-01 01:00:00', INTERVAL '1:25:35' HOUR_SECOND) AS "HOUR_SECOND",
DATE_ADD('2035-01-01 01:00:00', INTERVAL '1:30:25' DAY_MINUTE) AS "DAY_MINUTE";
Hasil:
+---------------------+---------------------+---------------------+ | YEAR_MONTH | HOUR_SECOND | DAY_MINUTE | +---------------------+---------------------+---------------------+ | 2036-03-01 01:00:00 | 2035-01-01 02:25:35 | 2035-01-03 07:25:00 | +---------------------+---------------------+---------------------+
Bilangan bulat dapat dipisahkan dengan karakter tanda baca apa pun. Oleh karena itu, kita dapat mengganti titik dua dengan titik untuk mendapatkan hasil yang sama:
SELECT
DATE_ADD('2035-01-01 01:00:00', INTERVAL '1.2' YEAR_MONTH) AS "YEAR_MONTH",
DATE_ADD('2035-01-01 01:00:00', INTERVAL '1.25.35' HOUR_SECOND) AS "HOUR_SECOND",
DATE_ADD('2035-01-01 01:00:00', INTERVAL '1.30.25' DAY_MINUTE) AS "DAY_MINUTE";
Hasil:
+---------------------+---------------------+---------------------+ | YEAR_MONTH | HOUR_SECOND | DAY_MINUTE | +---------------------+---------------------+---------------------+ | 2036-03-01 01:00:00 | 2035-01-01 02:25:35 | 2035-01-03 07:25:00 | +---------------------+---------------------+---------------------+