Di MariaDB, TIME_FORMAT()
adalah fungsi tanggal dan waktu bawaan yang memformat nilai waktu sesuai dengan string format yang diberikan.
Ini bekerja mirip dengan DATE_FORMAT()
fungsi, kecuali bahwa string format hanya dapat berisi penentu format untuk jam, menit, dan detik.
Ini membutuhkan dua argumen; waktu dan format string.
Sintaks
Sintaksnya seperti ini:
TIME_FORMAT(time,format)
Dimana time
adalah nilai waktu dan format
adalah format string. Lihat String Format MariaDB untuk daftar penentu format yang dapat diterima. Seperti disebutkan, hanya penentu format untuk jam, menit, dan detik yang diterima. Semua nilai lainnya mengembalikan null
.
Contoh
Ini contohnya:
SELECT TIME_FORMAT('10:30:45', '%H %i %S');
Hasil:
+-------------------------------------+| TIME_FORMAT('10:30:45', '%H %i %S') |+----------------------------- --------+| 10 30 45 |+------------------------------------------------+
Ini dia lagi, tapi kali ini kami menyediakan string format yang lebih rumit:
SELECT TIME_FORMAT(
'10:30:45',
'%H hours, %i minutes, and %S seconds'
)
AS Result;
Hasil:
+--------------------------------------+| Hasil |+-------------------------------------------------+| 10 jam, 30 menit, dan 45 detik |+--------------------------------------+
Jam Lebih Besar
TIME
nilai bisa dalam rentang '-838:59:59.999999'
ke '838:59:59.999999'
.
Oleh karena itu, porsi jam bisa jauh lebih tinggi dari 23
:
SELECT TIME_FORMAT(
'810:30:45',
'%H hours, %i minutes, and %S seconds'
)
AS Result;
Hasil:
+---------------------------------------+| Hasil |+--------------------------------------------------+| 810 jam, 30 menit, dan 45 detik |+-------------------------------------------------- +
Nilai Waktu Negatif
Berikut ini contoh dengan nilai waktu negatif:
SELECT TIME_FORMAT(
'-810:30:45',
'%H hours, %i minutes, and %S seconds'
)
AS Result;
Hasil:
+---------------------------------------+| Hasil |+--------------------------------------------------+| -810 jam, 30 menit, dan 45 detik |+---------------------------------- --+
Waktu Di Luar Jangkauan
Namun, memberikan nilai waktu di luar rentang akan mengembalikan batas atas rentang tersebut, bersama dengan peringatan:
SELECT TIME_FORMAT(
'910:30:45',
'%H hours, %i minutes, and %S seconds'
)
AS Result;
Hasil:
+---------------------------------------+| Hasil |+--------------------------------------------------+| 838 jam, 59 menit, dan 59 detik |+-------------------------------------------------- +1 baris di set, 1 peringatan (0,003 detik)
Mari kita periksa peringatannya:
SHOW WARNINGS;
Hasil:
+---------+------+----------------------------- ----------------+| tingkat | Kode | Pesan |+---------+-------+--------------------------------------- ---------------+| Peringatan | 1292 | Nilai waktu salah terpotong:'910:30:45' |+---------+------+------------------- --------------------------+
Argumen Tidak Valid
Saat melewati argumen yang tidak valid, TIME_FORMAT()
mengembalikan null
dengan peringatan:
SELECT TIME_FORMAT('Homer', 'Simpson');
Hasil:
+----------------------------------+| TIME_FORMAT('Homer', 'Simpson') |+---------------------------------+| NULL |+---------------------------------+1 baris di set, 1 peringatan (0,009 detik)Periksa peringatannya:
SHOW WARNINGS;
Hasil:
+---------+------+----------------------------- --+| tingkat | Kode | Pesan |+---------+-------+--------------------------------------- -+| Peringatan | 1292 | Nilai waktu salah:'Homer' |+---------+------+------------------------ -------+Format String Tidak Valid
String format hanya boleh berisi penentu format untuk jam, menit, dan detik. Penentu format lainnya menghasilkan
null
dikembalikan:SELECT TIME_FORMAT('10:30:45', '%M %W');
Hasil:
+----------------------------------+| TIME_FORMAT('10:30:45', '%M %W') |+------------------------------- ---+| NULL |+-----------------------------------+Argumen Tidak Ada
Memanggil
TIME_FORMAT()
dengan jumlah argumen yang salah, atau tanpa memberikan argumen apa pun, menghasilkan kesalahan:SELECT TIME_FORMAT();
Hasil:
ERROR 1582 (42000):Jumlah parameter salah dalam panggilan ke fungsi asli 'TIME_FORMAT'Dan contoh lain:
SELECT TIME_FORMAT('10:09:10');
Hasil:
ERROR 1582 (42000):Jumlah parameter salah dalam panggilan ke fungsi asli 'TIME_FORMAT'