sql >> Databáze >  >> RDS >> Mysql

MySQL převádí výstup časového rozdílu do formátu dne, hodiny, minuty, sekundy

SELECT CONCAT(
FLOOR(HOUR(TIMEDIFF('2010-01-06 08:46', '2010-01-01 12:30')) / 24), ' days ',
MOD(HOUR(TIMEDIFF('2010-01-06 08:46', '2010-01-01 12:30')), 24), ' hours ',
MINUTE(TIMEDIFF('2010-01-06 08:46', '2010-01-01 12:30')), ' minutes')

Použijte svůj end_time a start_time pro pevné hodnoty datetime v mém příkladu

Podle dvou níže uvedených komentářů toto řešení funguje pouze pro rozdíly v datech do 35 dnů. Pokud víte, že mezi začátkem a koncem je více než 35 dní, tedy rozdíly za měsíc, nepoužívejte jej. Ostatní odpovědi zde pomocí TIMESTAMPDIFF budou fungovat.



  1. Spusťte dávkový soubor pomocí příkazu psql bez hesla

  2. Převeďte řetězec oddělený čárkami na pole v PL/SQL

  3. Problém s vytvořením cizího klíče v Oracle

  4. Zřetězení řetězců SQL Server s hodnotou Null