問題:
時間を計算するときMySQL で TIMEDIFF(end_time, start_time) を使用して 2 つの日時の差を計算すると、時、分、秒を示す「116:12:10」のような形式で結果が返されます。ただし、必要な形式は「4 日 20 時間、12 分など」です。
解決策:
必要な形式を実現するには、次のクエリを使用できます。 :
<code class="sql">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')</code>
使用例:
end_time と start_time を特定の日時で置き換えます:
<code class="sql">SELECT CONCAT( FLOOR(HOUR(TIMEDIFF('2023-03-08 12:34', '2023-03-01 16:45')) / 24), ' days ', MOD(HOUR(TIMEDIFF('2023-03-08 12:34', '2023-03-01 16:45')), 24), ' hours ', MINUTE(TIMEDIFF('2023-03-08 12:34', '2023-03-01 16:45')), ' minutes')</code>
注:
このソリューションは、35 日以内の時差にのみ適しています。時差が 35 日を超えることが予想される場合は、代わりに TIMESTAMPDIFF の使用を検討してください。
以上がMySQL TIMEDIFF の結果を日、時、分、秒の形式に変換するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。