Di MySQL, Anda dapat menggunakan EXTRACT()
berfungsi untuk mengekstrak bagian dari tanggal. Misalnya, Anda dapat mengekstrak bagian tahun, bagian bulan, atau bagian hari, dll. Anda juga dapat mengekstrak bagian dari komponen waktu, seperti menit, detik, mikrodetik, dll.
Artikel ini berisi contoh untuk ditunjukkan.
Sintaks
Sintaksnya seperti ini:
EKSTRAK(unit DARI tanggal)
Dimana unit
adalah bagian tanggal yang ingin Anda ekstrak, dan date
adalah nilai tanggal untuk mengekstrak bagian itu.
Lihat tabel di bagian bawah artikel ini untuk daftar penentu unit yang valid.
Contoh 1
Berikut adalah contoh untuk mendemonstrasikan penggunaan dasar fungsi.
PILIH EKSTRAK(TAHUN DARI '01-01-2019') SEBAGAI 'Hasil';
Hasil:
+--------+| Hasil |+--------+| 2019 |+--------+
Contoh 2 – Bagian Tanggal Lainnya
Di sini saya mengekstrak berbagai bagian tanggal dari sebuah tanggal.
SET @date ='2019-10-03';PILIH EKSTRAK(HARI DARI @tanggal) SEBAGAI 'Hari', EKSTRAK(BULAN DARI @tanggal) SEBAGAI 'Bulan', EKSTRAK(TAHUN DARI @tanggal) SEBAGAI 'Tahun ';
Hasil:
+------+-------+------+| Hari | Bulan | Tahun |+------+-------+------+| 3 | 10 | 2019 |+------+-------+------+
Contoh 3 – Mengekstrak Bagian Waktu
Di sini saya mengekstrak berbagai bagian waktu dari sebuah tanggal.
SET @date ='2019-10-03 12:35:05.123456';PILIH EKSTRAK(JAM DARI @tanggal) SEBAGAI 'Jam', EKSTRAK(MENIT DARI @tanggal) SEBAGAI 'Menit', EKSTRAK(DETIK DARI @ tanggal) SEBAGAI 'Detik', EKSTRAK(MICROSECOND FROM @date) SEBAGAI 'Mikrodetik';
Hasil:
+-------+--------+--------+-------------+| Jam | Menit | Detik | Mikrodetik |+-------+---------+---------+-------------+| 12 | 35 | 5 | 123456 |+-------+---------+---------+-------------+
Contoh 4 – Menggabungkan Penentu Unit
Anda juga dapat menggabungkan penentu unit, seperti ini:
SET @date ='2019-10-03 12:35:05.123456';SELECT EXTRACT(HOUR_MICROSECOND FROM @date) SEBAGAI 'Hasil';
Hasil:
+-------------+| Hasil |+--------------+| 123505123456 |+--------------+
Contoh ini mengembalikan semuanya mulai dari bagian jam hingga bagian mikrodetik.
Contoh Basis Data
Berikut ini contoh mengekstrak tahun dan bulan dari kolom di database:
GUNAKAN sakila;SELECT payment_date AS 'Date/Time', EXTRACT(YEAR_MONTH FROM payment_date) AS 'Year/Month'FROM paymentWHERE payment_id =1;
Hasil:
+---------------------+------------+| Tanggal/Waktu | Tahun/Bulan |+---------------------+------------+| 2005-05-25 11:30:37 | 200505 |+---------------------+------------+
Tanggal/Waktu Saat Ini
Di sini, saya mengekstrak bagian bulan dari tanggal yang dihasilkan dengan CURDATE()
fungsi.
PILIH CURDATE(), EKSTRAK(BULAN DARI CURDATE());
Hasil:
+------------+--------------------------------+| TANGGAL() | EKSTRAK(BULAN DARI CURDATE()) |+------------+--------------------------- ----+| 2018-06-26 | 6 |+------------+-------------------------------+Dalam contoh ini saya mengekstrak bagian jam dari tanggal dan waktu saat ini (yang dihasilkan dengan
NOW()
fungsi).PILIH SEKARANG(), EKSTRAK(JAM DARI SEKARANG());Hasil:
+---------------------+------------------------ --+| SEKARANG() | EKSTRAK(JAM DARI SEKARANG()) |+---------------------+------------------ --------+| 26-06-2018 09:01:46 | 9 |+---------------------+------------------------ -+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' |