Di bawah ini adalah 4 fungsi yang memungkinkan Anda mengembalikan bagian mikrodetik dari nilai waktu di MariaDB.
MICROSECOND()
Fungsi
MICROSECOND()
fungsi mengembalikan bagian mikrodetik dari TIME
yang diberikan atau DATETIME
ekspresi. Ia menerima satu argumen, yaitu waktu yang Anda inginkan untuk mengekstrak mikrodetik.
Contoh:
SELECT MICROSECOND('10:45:30.123456');
Hasil:
+--------------------------------+| MIKROSKON('10:45:30.123456') |+--------------------------------+| 123456 |+--------------------------------+
TIME
nilai bisa dalam rentang '-838:59:59.999999'
ke '838:59:59.999999'
.
TIME
nilai juga bisa negatif. Dalam kasus seperti itu, MICROSECOND()
mengembalikan nilai positif.
Berikut adalah nilai waktu negatif dengan bagian mikrodetik:
SELECT MICROSECOND('-838:59:59.999999');
Hasil:
+----------------------------------+| MICROSECOND('-838:59:59.999999') |+----------------------------------+| 999999 |+----------------------------------+
Bagian mikrodetik diekstraksi seperti yang diharapkan.
EXTRACT()
Fungsi
EXTRACT()
fungsi memungkinkan Anda untuk mengekstrak unit tertentu dari nilai tanggal/waktu. Oleh karena itu, Anda dapat menggunakannya untuk mengekstrak mikrodetik (serta unit lain) dari nilai waktu.
Contoh:
SELECT EXTRACT(MICROSECOND FROM '10:45:30.123456');
Hasil:
+------------------------------------------------+ | EKSTRAK(MICROSECOND DARI '10:45:30.123456') |+------------------------------------ ---------+| 123456 |+--------------------------------------------+
TIME_FORMAT()
Fungsi
TIME_FORMAT()
fungsi memungkinkan Anda untuk memformat nilai waktu berdasarkan string format. String format menentukan bagaimana waktu harus diformat.Oleh karena itu, Anda dapat menggunakan fungsi ini untuk mengembalikan mikrodetik (serta jam, menit, dan detik) dari waktu.
%f
penentu format mengembalikan mikrodetik:SELECT TIME_FORMAT('10:07:30.003456', '%f');
Hasil:
+--------------------------------------+| TIME_FORMAT('10:07:30.003456', '%f') |+--------------------------------- -----+| 003456 |+---------------------------------------+Anda juga dapat menggunakan
$s
atau$S
penentu format untuk mengembalikan bagian detik:SELECT TIME_FORMAT('10:07:30.123456', '%s') AS "Seconds", TIME_FORMAT('10:07:30.123456', '%f') AS "Microseconds", TIME_FORMAT('10:07:30.123456', '%s.%f') AS "Both";
Hasil:
+---------+--------------+-----------+| Detik | Mikrodetik | Keduanya |+---------+--------------+-----------+| 30 | 123456 | 30.123456 |+---------+--------------+-----------+
TIME_FORMAT()
fungsi menerima subset format string yang dapat digunakan denganDATE_FORMAT()
fungsi. Lihat MariaDB Format Strings untuk daftar lengkap format string/specifier yang dapat digunakan denganDATE_FORMAT()
.TIME_FORMAT()
fungsi hanya menerima penentu format untuk jam, menit, dan detik/sub detik. Penentu format lainnya menghasilkannull
atau0
dikembalikan.
DATE_FORMAT()
Fungsi
DATE_FORMAT()
fungsi memungkinkan Anda untuk memformat tanggal atau nilai datetime berdasarkan string format. String format menentukan bagaimana tanggal/waktu harus diformat.Oleh karena itu, kami dapat menggunakan penentu format yang sama dengan yang kami gunakan dengan
TIME_FORMAT()
fungsi pada contoh sebelumnya. Namun,DATE_FORMAT()
tidak menerimaTIME
nilai, jadi kita harus melewatiDATETIME
nilai.SELECT DATE_FORMAT('2023-01-01 10:07:30.007123', '%f');
Hasil:
+------------------------------------------------- ---+| DATE_FORMAT('2023-01-01 10:07:30.007123', '%f') |+---------------------------- ----------+| 007123 |+----------------------------------------------- --+Melewati
TIME
nilai tidak berfungsi dengan fungsi ini:SELECT DATE_FORMAT('10:07:30.007123', '%f');
Hasil:
+--------------------------------------+| DATE_FORMAT('10:07:30.007123', '%f') |+--------------------------------- -----+| NULL |+-------------------------------------------------+1 baris di set, 1 peringatan ( 0,003 detik)Mari kita lihat peringatannya:
SHOW WARNINGS;
Hasil:
+---------+------+----------------------------- ----------------+| tingkat | Kode | Pesan |+---------+-------+--------------------------------------- ---------------+| Peringatan | 1292 | Nilai tanggal waktu salah:'10:07:30.007123' |+---------+------+-------------------- -------------------------+