Di MySQL, Anda dapat menggunakan TIME_FORMAT()
berfungsi untuk memformat nilai waktu.
Fungsi ini bekerja seperti DATE_FORMAT()
fungsi, kecuali bahwa nilainya hanya dapat diformat dalam jam, menit, detik, dan mikrodetik.
Lihat tabel di bagian bawah artikel ini untuk daftar penentu format yang dapat digunakan dengan fungsi ini.
Sintaks
Sintaksnya seperti ini:
TIME_FORMAT(time,format)
Dimana time
adalah nilai waktu yang ingin Anda format, dan format
adalah string format (ini menentukan bagaimana nilai waktu sebenarnya diformat).
Contoh 1 – Penggunaan Dasar
Berikut ini contoh untuk didemonstrasikan.
SELECT TIME_FORMAT('14:35:27', '%r') AS 'Result';
Hasil:
+-------------+ | Result | +-------------+ | 02:35:27 PM | +-------------+
Contoh ini menggunakan %r
penentu format, yang memformat waktu sebagai 12 jam (jj:mm:dd diikuti oleh AM atau PM).
Contoh 2 – Pemformatan Lebih Spesifik
Jika menggunakan penentu format yang lebih umum seperti pada contoh sebelumnya tidak cocok, ada berbagai penentu format lain yang dapat membantu Anda membuat format yang Anda butuhkan.
Misalnya, jika Anda menyukai format sebelumnya, tetapi Anda tidak ingin detik dikembalikan, Anda dapat melakukan ini:
SELECT TIME_FORMAT('14:35:27', '%h:%i %p') AS 'Result';
Hasil:
+----------+ | Result | +----------+ | 02:35 PM | +----------+
Contoh 3 – Waktu 24 Jam
Ada juga penentu format untuk waktu 24 jam. Berikut cara termudah untuk memformat waktu menggunakan waktu 24 jam.
SELECT TIME_FORMAT('14:35:27', '%T') AS 'Result';
Hasil:
+----------+ | Result | +----------+ | 14:35:27 | +----------+
Contoh 4 – Mikrodetik
Berikut adalah contoh yang menyertakan bagian pecahan detik dalam hasil:
SELECT TIME_FORMAT('14:35:27', '%H:%i:%s.%f') AS 'Result';
Hasil:
+-----------------+ | Result | +-----------------+ | 14:35:27.000000 | +-----------------+
Tentu saja, kami juga dapat menyertakan mikrodetik dalam nilai waktu awal:
SELECT TIME_FORMAT('14:35:27.123456', '%H:%i:%s.%f') AS 'Result';
Hasil:
+-----------------+ | Result | +-----------------+ | 14:35:27.123456 | +-----------------+
Contoh 5 – Waktu yang Berlalu
Tipe data waktu tidak terbatas pada waktu 24 jam. Ini juga dapat digunakan untuk mewakili waktu yang telah berlalu. Saat menggunakan fungsi ini untuk waktu yang telah berlalu, Anda harus mengetahui cara kerja penentu format jam dengan nilai waktu di luar rentang 0 hingga 23.
Dokumentasi MySQL menyatakan sebagai berikut:
Jika nilai waktu berisi bagian jam yang lebih besar dari
23
,%H
dan%k
penentu format jam menghasilkan nilai yang lebih besar dari kisaran biasa0..23
. Penentu format jam lainnya menghasilkan nilai jam modulo12
.
Berikut ini contoh untuk didemonstrasikan:
SELECT TIME_FORMAT('24:00:00', '%H %k %h %I %l') AS '24', TIME_FORMAT('48:00:00', '%H %k %h %I %l') AS '48', TIME_FORMAT('100:00:00', '%H %k %h %I %l') AS '100', TIME_FORMAT('500:00:00', '%H %k %h %I %l') AS '500';
Hasil:
+----------------+----------------+-----------------+-----------------+ | 24 | 48 | 100 | 500 | +----------------+----------------+-----------------+-----------------+ | 24 24 12 12 12 | 48 48 12 12 12 | 100 100 04 04 4 | 500 500 08 08 8 | +----------------+----------------+-----------------+-----------------+
Penentu Format
Penentu berikut dapat digunakan untuk menentukan format pengembalian. Ini adalah bagian dari yang tersedia dengan DATE_FORMAT()
fungsi. Nilai format harus dimulai dengan tanda persentase (%
).
Specifier | Deskripsi |
---|---|
%f | Mikrodetik (000000 ..999999 ) |
%H | Jam (00 ..23 ) |
%h | Jam (01 ..12 ) |
%I | Jam (01 ..12 ) |
%i | Menit, numerik (00 ..59 ) |
%k | Jam (0 ..23 ) |
%l | Jam (1 ..12 ) |
%p | AM atau PM |
%r | Waktu, 12 jam (hh:mm:ss diikuti oleh AM atau PM ) |
%S | Detik (00 ..59 ) |
%s | Detik (00 ..59 ) |
%T | Waktu, 24 jam (hh:mm:ss ) |
%% | Sebuah % literal karakter |