MariaDB
 sql >> Teknologi Basis Data >  >> RDS >> MariaDB

4 Fungsi untuk Mendapatkan Jam dari Nilai Waktu di MariaDB

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' |+---------+------+-------------------- ------------------+

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Postingan Blog Basis Data Terpopuler Kami di Tahun 2017

  2. Bagaimana TO_CHAR() Bekerja di MariaDB

  3. MariaDB DATABASE() Dijelaskan

  4. Cara Menjalankan dan Mengelola Pencadangan MySQL untuk Oracle DBA

  5. MariaDB CURRENT_TIME() Dijelaskan