Rumah > Artikel > pangkalan data > Bagaimana untuk Menukar Output TIMEDIFF ke dalam Format Hari, Jam, Minit dan Kedua dalam MySQL?
Menukar Output TIMEDIFF kepada Format Hari, Jam, Minit dan Kedua yang Boleh Dibaca Manusia dalam MySQL
Menghadapi cabaran menukar output TIMEDIFF ke dalam format yang lebih mesra pengguna yang memaparkan perbezaan masa dari segi hari, jam, minit dan saat, ramai pengguna MySQL telah mencari penyelesaian. Untuk menangani isu ini, mari kita mendalami pertanyaan yang disediakan:
SELECT TIMEDIFF(end_time, start_time) AS "total" FROM `metrics`;
Pertanyaan ini dengan mudah menolak masa_mula daripada masa_akhir, menghasilkan jumlah perbezaan masa sebagai lajur "jumlah". Walau bagaimanapun, output dipersembahkan dalam format mentah, menjadikannya menyusahkan untuk ditafsirkan sepintas lalu.
Untuk membetulkannya, pendekatan yang dicadangkan memanfaatkan fungsi CONCAT untuk mencantumkan bahagian konstituen perbezaan masa menjadi manusia -rentetan boleh dibaca. Pernyataan SQL berikut mencapai transformasi ini:
SELECT CONCAT( FLOOR(HOUR(TIMEDIFF(end_time, start_time)) / 24), ' days ', MOD(HOUR(TIMEDIFF(end_time, start_time)), 24), ' hours ', MINUTE(TIMEDIFF(end_time, start_time)), ' minutes')
Gantikan nilai masa tamat dan masa mula pemegang tempat dengan nama lajur yang sepadan dalam jadual metrik anda.
Penyelesaian ini mengekstrak jam daripada hasil TIMEDIFF dan menukarkannya kepada hari jika perlu. Ia kemudian menambah jam dan minit untuk membentuk output yang diingini. Ambil perhatian bahawa pendekatan ini sesuai untuk perbezaan masa dalam tempoh 35 hari. Untuk senario yang melibatkan tempoh yang lebih panjang, penyelesaian alternatif menggunakan TIMESTAMPDIFF mungkin lebih sesuai.
Atas ialah kandungan terperinci Bagaimana untuk Menukar Output TIMEDIFF ke dalam Format Hari, Jam, Minit dan Kedua dalam MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!