Di bawah ini adalah 4 fungsi yang memungkinkan Anda mengembalikan bagian detik dari nilai waktu di MariaDB.
The SECOND()
Fungsi
SECOND()
fungsi mengembalikan bagian detik dari TIME
yang diberikan atau DATETIME
ekspresi. Ia menerima satu argumen, yaitu waktu yang Anda inginkan untuk mengekstrak detik darinya.
Contoh:
SELECT SECOND('03:45:30');
Hasil:
+--------------------+ | SECOND('03:45:30') | +--------------------+ | 30 | +--------------------+
TIME
nilai bisa dalam rentang '-838:59:59.999999'
ke '838:59:59.999999'
. Ini termasuk mikrodetik, tetapi SECOND()
mengembalikan hanya bagian detik (ada MICROSECOND()
fungsi untuk mengembalikan mikrodetik).
TIME
nilai juga bisa negatif. Dalam kasus seperti itu, SECOND()
mengembalikan nilai positif.
Berikut adalah nilai waktu negatif dengan bagian mikrodetik:
SELECT SECOND('-838:59:59.999999');
Hasil:
+-----------------------------+ | SECOND('-838:59:59.999999') | +-----------------------------+ | 59 | +-----------------------------+
Bagian detik diekstraksi seperti yang diharapkan.
EXTRACT()
Fungsi
EXTRACT()
fungsi memungkinkan Anda untuk mengekstrak unit tertentu dari nilai tanggal/waktu. Oleh karena itu, Anda dapat menggunakannya untuk mengekstrak detik (serta unit lain) dari nilai waktu.
Contoh:
SELECT EXTRACT(SECOND FROM '10:47:01');
Hasil:
+---------------------------------+ | EXTRACT(SECOND FROM '10:47:01') | +---------------------------------+ | 1 | +---------------------------------+
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 detik (serta menit dan jam) dari waktu.
%s
dan %S
penentu format keduanya mengembalikan detik dengan dua digit:
SELECT
TIME_FORMAT('10:07:30', '%s'),
TIME_FORMAT('10:07:30', '%S');
Hasil:
+-------------------------------+-------------------------------+ | TIME_FORMAT('10:07:30', '%s') | TIME_FORMAT('10:07:30', '%S') | +-------------------------------+-------------------------------+ | 30 | 30 | +-------------------------------+-------------------------------+
Anda juga dapat menggunakan $f
penentu format untuk mengembalikan enam digit sub detik:
SELECT
TIME_FORMAT('10:07:30.123456', '%f') AS "Microseconds",
TIME_FORMAT('10:07:30.123456', '%s.%f') AS "Both";
Hasil:
+--------------+-----------+ | Microseconds | Both | +--------------+-----------+ | 123456 | 30.123456 | +--------------+-----------+
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/sub 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 10:07:30', '%s');
Hasil:
+------------------------------------------+ | DATE_FORMAT('2023-01-01 10:07:30', '%s') | +------------------------------------------+ | 30 | +------------------------------------------+
Melewati TIME
nilai tidak berfungsi dengan fungsi ini:
SELECT DATE_FORMAT('10:07:30', '%s') AS '%s';
Hasil:
+------+ | %s | +------+ | 00 | +------+