Di MariaDB, MAKETIME() adalah fungsi tanggal dan waktu bawaan yang mengembalikan nilai waktu, berdasarkan jam, menit, dan detik yang diberikan sebagai argumen.
Sintaks
Sintaksnya seperti ini:
MAKETIME(hour,minute,second) Contoh
Ini contohnya:
SELECT MAKETIME(08, 30, 45); Hasil:
+----------------------+ | MAKETIME(08, 30, 45) | +----------------------+ | 08:30:45 | +----------------------+
Dan satu lagi:
SELECT MAKETIME(23, 8, 1); Hasil:
+--------------------+ | MAKETIME(23, 8, 1) | +--------------------+ | 23:08:01 | +--------------------+
Rentang
Jika hour argumen berada di luar rentang -838 ke 838 , nilainya dipotong dengan peringatan.
Jika minute atau second argumen berada di luar rentang 0 ke 59 , hasilnya null , dan peringatan ditampilkan (dokumentasi MariaDB menyatakan bahwa rentangnya adalah 0 ke 60 , tapi ini tidak terjadi dalam pengujian saya. Selanjutnya, dokumentasi MariaDB juga menyatakan bahwa rentang nilai waktu MariaDB adalah '-838:59:59.999999' ke '838:59:59.999999' ).
Bagaimanapun, inilah contoh waktu dengan nilai yang berada di ujung atas rentang yang diterima:
SELECT MAKETIME(838, 59, 59.999999); Hasil:
+------------------------------+ | MAKETIME(838, 59, 59.999999) | +------------------------------+ | 838:59:59.999999 | +------------------------------+
Nilai-nilai ini masih dalam kisaran yang diterima, jadi kami mendapatkan nilai waktu yang valid.
Menit &Detik Tidak Valid
Inilah yang terjadi ketika kita melewati rentang yang diterima untuk minute dan second argumen:
SELECT
MAKETIME(00, 60, 00),
MAKETIME(00, 00, 60); Hasil:
+----------------------+----------------------+ | MAKETIME(00, 60, 00) | MAKETIME(00, 00, 60) | +----------------------+----------------------+ | NULL | NULL | +----------------------+----------------------+ 1 row in set, 1 warning (0.001 sec)
Hasilnya adalah null untuk keduanya, dengan peringatan.
Mari kita periksa peringatannya:
SHOW WARNINGS; Hasil:
+---------+------+-----------------------------------------+ | Level | Code | Message | +---------+------+-----------------------------------------+ | Warning | 1292 | Truncated incorrect seconds value: '60' | +---------+------+-----------------------------------------+
Jam Tidak Valid
Sekarang mari kita lihat apa yang terjadi ketika kita melampaui rentang yang diterima untuk hour argumen:
SELECT MAKETIME(900, 00, 00); Hasil:
+-----------------------+ | MAKETIME(900, 00, 00) | +-----------------------+ | 838:59:59 | +-----------------------+ 1 row in set, 1 warning (0.000 sec)
Dalam skenario ini, nilai waktu dikembalikan dengan jam, menit, dan detik terpotong ke kisaran atasnya. Sebuah peringatan juga dikembalikan.
Mari kita periksa peringatannya:
SHOW WARNINGS; Hasil:
+---------+------+---------------------------------------------+ | Level | Code | Message | +---------+------+---------------------------------------------+ | Warning | 1292 | Truncated incorrect time value: '900:00:00' | +---------+------+---------------------------------------------+
Argumen Tidak Ada
Memanggil MAKETIME() dengan jumlah argumen yang salah, atau tanpa memberikan argumen apa pun, menghasilkan kesalahan:
SELECT MAKETIME(); Hasil:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'MAKETIME'
Dan contoh lain:
SELECT MAKETIME( 12, 1 ); Hasil:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'MAKETIME'
Buat Kencan
Lihat juga SEC_TO_TIME() untuk membuat nilai tanggal dari beberapa detik.
Lihat juga MAKEDATE() untuk membuat nilai tanggal dari tahun dan hari dalam setahun.