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.