Di bawah ini adalah 4 fungsi yang memungkinkan Anda mengembalikan jam dari nilai waktu di MariaDB.
HOUR()
Fungsi
HOUR()
fungsi mengembalikan jam untuk TIME
yang diberikan atau DATETIME
ekspresi. Ia menerima satu argumen, yaitu waktu yang Anda inginkan untuk mengekstrak jamnya.
Contoh:
SELECT HOUR('03:45:30');
Hasil:
+------------------+| JAM('03:45:30') |+------------------+| 3 |+------------------+
Untuk nilai waktu hari, ini mengembalikan jam sebagai angka dalam rentang 0
ke 23
. Namun, rentang TIME
nilainya bisa jauh lebih besar, dan oleh karena itu, nilai yang dikembalikan bisa jauh lebih tinggi daripada 23
. Khususnya, TIME
nilai bisa dalam rentang '-838:59:59.999999'
ke '838:59:59.999999'
.
Berikut ini contoh dengan bagian jam yang lebih besar:
SELECT HOUR('838:45:30');
Hasil:
+-------------------+| JAM('838:45:30') |+-------------------+| 838 |+-------------------+
Jika waktu berada di luar rentang yang diterima untuk TIME
nilai, nilai yang dikembalikan adalah 838
dengan peringatan.
TIME
nilai juga bisa negatif. Dalam kasus seperti itu, HOUR()
mengembalikan nilai positif.
EXTRACT()
Fungsi
EXTRACT()
fungsi memungkinkan Anda untuk mengekstrak unit tertentu dari nilai tanggal/waktu. Oleh karena itu, Anda dapat menggunakannya untuk mengekstrak jam (serta unit lain) dari nilai waktu.
Contoh:
SELECT EXTRACT(HOUR FROM '10:47:01');
Hasil:
+-------------------------------+| EKSTRAK(JAM DARI '10:47:01') |+-------------------------------+| 10 |+-------------------------------+
TIME_FORMAT()
Fungsi
TIME_FORMAT()
fungsi memungkinkan Anda untuk memformat nilai waktu berdasarkan string format. String format menentukan bagaimana waktu harus diformat.
Karena itu Anda dapat menggunakan fungsi ini untuk mengembalikan jam (serta menit dan detik) dari waktu. Ada berbagai opsi untuk mengembalikan jam.
Berikut adalah contoh yang mengembalikan jam dalam berbagai bentuk:
SELECT
TIME_FORMAT('18:45:30', '%H') AS '%H',
TIME_FORMAT('18:45:30', '%h') AS '%h',
TIME_FORMAT('18:45:30', '%I') AS '%I',
TIME_FORMAT('18:45:30', '%k') AS '%k',
TIME_FORMAT('18:45:30', '%l') AS '%l';
Hasil:
+------+------+------+------+------+| %H | %h | %I | %k | %l |+------+------+------+------+------+| 18 | 06 | 06 | 18 | 6 |+------+------+------+------+------+
Berikut adalah deskripsi dari masing-masing penentu format tersebut:
Penentu Format | Deskripsi |
---|---|
%H | Jam dengan 2 digit antara 00-23. |
%h | Jam dengan 2 digit antara 01-12. |
%I | Jam dengan 2 digit antara 01-12. |
%k | Jam dengan 1 digit antara 0-23. |
%l | Jam dengan 1 digit antara 1-12. |
TIME_FORMAT()
fungsi menerima subset format string yang dapat digunakan dengan DATE_FORMAT()
fungsi. Lihat MariaDB Format Strings untuk daftar lengkap format string/specifier yang dapat digunakan dengan DATE_FORMAT()
. TIME_FORMAT()
fungsi hanya menerima penentu format untuk jam, menit, dan detik. Penentu format lainnya menghasilkan null
atau 0
dikembalikan.
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 menerima TIME
nilai, jadi kita harus melewati DATETIME
nilai.
SELECT
DATE_FORMAT('2023-01-01 18:45:30', '%H') AS '%H',
DATE_FORMAT('2023-01-01 18:45:30', '%h') AS '%h',
DATE_FORMAT('2023-01-01 18:45:30', '%I') AS '%I',
DATE_FORMAT('2023-01-01 18:45:30', '%k') AS '%k',
DATE_FORMAT('2023-01-01 18:45:30', '%l') AS '%l';
Hasil:
+------+------+------+------+------+| %H | %h | %I | %k | %l |+------+------+------+------+------+| 18 | 06 | 06 | 18 | 6 |+------+------+------+------+------+
Melewati TIME
nilai tidak cukup dengan fungsi ini:
SELECT
DATE_FORMAT('18:45:30', '%H') AS '%H',
DATE_FORMAT('18:45:30', '%h') AS '%h',
DATE_FORMAT('18:45:30', '%I') AS '%I',
DATE_FORMAT('18:45:30', '%k') AS '%k',
DATE_FORMAT('18:45:30', '%l') AS '%l';
Hasil:
+------+------+------+------+------+| %H | %h | %I | %k | %l |+------+------+------+------+------+| NULL | NULL | NULL | NULL | NULL |+------+------+------+------+------+1 baris di set, 5 peringatan (0,000 detik)Tampilkan peringatan:
SHOW WARNINGS;
Hasil:
+---------+------+----------------------------- ---------+| tingkat | Kode | Pesan |+---------+-------+--------------------------------------- --------+| Peringatan | 1292 | Nilai tanggal waktu salah:'18:45:30' || Peringatan | 1292 | Nilai tanggal waktu salah:'18:45:30' || Peringatan | 1292 | Nilai tanggal waktu salah:'18:45:30' || Peringatan | 1292 | Nilai tanggal waktu salah:'18:45:30' || Peringatan | 1292 | Nilai tanggal waktu salah:'18:45:30' |+---------+------+-------------------- ------------------+