Konversi Waktu - MySQL Dasar #18

konversi waktu ke nilai detik di mysql

Lihat [ Daftar Isi : Tanggal dan Waktu ]

Dalam kondisi tertentu ketika misalnya Anda menginginkan sebuah nilai waktu yang terdiri dari jam/menit/detik di konversi menjadi nilai detik secara keseluruhan atau misalnya sebaliknya dari nilai detik menjadi nilai utuh waktu jam/menit/detik.

Nilai TIME yang terdiri dari jam, menit dan detik, sebenarnya merupakan nilai dari detik yang telah disederhanakan sehingga ketika misalnya Anda ingin melihat waktu direpresentasikan menjadi sebuah nilai detik, maka Anda bisa menggunakan fungsi TIME_TO_SEC untuk mengkonversi waktu ke detik dan sebaliknya SEC_TO_TIME untuk mengkonversi nilai detik menjadi nilai waktu yang utuh. Perhatikan contoh berikut

MariaDB [root93]> select t1, time_to_sec(t1) AS 'Konversi jam ke detik',
                    -> sec_to_time(time_to_sec(t1)) AS 'Detik ke Jam' FROM waktu;
+----------+-----------------------+--------------+
| t1       | Konversi jam ke detik | Detik ke Jam |
+----------+-----------------------+--------------+
| 15:00:00 |                 54000 | 15:00:00     |
| 08:02:00 |                 28920 | 08:02:00     |
| 13:20:21 |                 48021 | 13:20:21     |
+----------+-----------------------+--------------+
3 rows in set (0.00 sec)

Selain itu mengkonversi nilai waktu ke detik, Anda juga bisa saja merepresentasikan nilai waktu dalam hitungan menit, jam dan hari. Anda hanya perlu melakukan perhitungan pembagian pada nilai yang ingin Anda konversi seperti yang digambarkan dalam contoh potongan query berikut :

MariaDB [root93]> SELECT t2, TIME_TO_SEC(t2)/(60*60) AS jam, TIME_TO_SEC(t2)/60 AS menit, TIME_TO_SEC(t2) AS detik,
    ->    TIME_TO_SEC(t2)/(24*60*60) AS hari FROM waktu;
+----------+---------+-----------+-------+--------+
| t2       | jam     | menit     | detik | hari   |
+----------+---------+-----------+-------+--------+
| 17:00:00 | 17.0000 | 1020.0000 | 61200 | 0.7083 |
| 14:30:00 | 14.5000 |  870.0000 | 52200 | 0.6042 |
| 21:14:01 | 21.2336 | 1274.0167 | 76441 | 0.8847 |
+----------+---------+-----------+-------+--------+
3 rows in set (0.00 sec)

Nilai konversi diatas khususnya pada bagian jam, menit, dan hari menghasilkan nilai yang panjang setelah titik, maka Anda bisa menambahkan paramter FLOOR didalamnya seperti berikut

MariaDB [root93]> SELECT t2,
    -> FLOOR(TIME_TO_SEC(t2)/(60*60)) AS jam,
    -> FLOOR(TIME_TO_SEC(t2)/60) AS menit,
    -> TIME_TO_SEC(t2) AS detik,
-> FLOOR(TIME_TO_SEC(t2)/(24*60*60)) AS hari FROM waktu; +----------+------+-------+-------+------+ | t2 | jam | menit | detik | hari | +----------+------+-------+-------+------+ | 17:00:00 | 17 | 1020 | 61200 | 0 | | 14:30:00 | 14 | 870 | 52200 | 0 | | 21:14:01 | 21 | 1274 | 76441 | 0 | +----------+------+-------+-------+------+ 3 rows in set (0.02 sec)

Selanjutnya fungsi TIME_TO_SEC bukan hanya bisa diterapkan pada nilai TIME saja tetapi juga bisa pada nilai DATETIME, dimana nantinya TIME_TO_SEC hanya akan mengekstrak nilai waktu saja, sedangkan bagian tanggal seolah seperti dibuang/dilewatkan. Perhatikan contoh berikut :

MariaDB [root93]> SELECT dt, TIME_TO_SEC(dt) AS 'Jam ke Detik', SEC_TO_TIME(TIME_TO_SEC(dt)) AS 'Detik ke Jam' FROM tanggal_waktu
+---------------------+--------------+--------------+
| dt                  | Jam ke Detik | Detik ke Jam |
+---------------------+--------------+--------------+
| 1970-01-01 00:00:00 |            0 | 00:00:00     |
| 1993-07-30 10:20:31 |        37231 | 10:20:31     |
| 2000-02-01 17:20:31 |        62431 | 17:20:31     |
| 2021-01-23 21:20:31 |        76831 | 21:20:31     |
+---------------------+--------------+--------------+

Baca Selanjutnya : Konversi Tanggal - MySQL Dasar #19

0 Response to "Konversi Waktu - MySQL Dasar #18"

Post a Comment

Silahkan untuk meninggalkan komentar, santai saja dan mulailah berkomentar...