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.
%fpenentu format mengembalikan mikrodetik:SELECT TIME_FORMAT('10:07:30.003456', '%f');Hasil:
+--------------------------------------+| TIME_FORMAT('10:07:30.003456', '%f') |+--------------------------------- -----+| 003456 |+---------------------------------------+Anda juga dapat menggunakan
$satau$Spenentu 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 menghasilkannullatau0dikembalikan.
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 menerimaTIMEnilai, jadi kita harus melewatiDATETIMEnilai.SELECT DATE_FORMAT('2023-01-01 10:07:30.007123', '%f');Hasil:
+------------------------------------------------- ---+| DATE_FORMAT('2023-01-01 10:07:30.007123', '%f') |+---------------------------- ----------+| 007123 |+----------------------------------------------- --+Melewati
TIMEnilai 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' |+---------+------+-------------------- -------------------------+