sql >> Database >  >> RDS >> Mysql

Uren tellen met MySQL

Ik dacht dat ik je het antwoord zou posten in het perspectief van het samenvatten van tijdwaarde-gerelateerde problemen waar ontwikkelaars tot nu toe mee te maken hebben gehad. Het gaat niet alleen om opmaak.

Je hebt misschien wel of niet gemerkt dat de som van je totale tijd verkeerd kan worden berekend door de motor. Verdere mysql-engine kan null retourneren, hoewel je waarden hebt.

Wanneer u tijdwaarden toevoegt/aggregeert, wordt dit geconverteerd als een getal en zijn de resultaten in getalnotatie. Als u probeert om tijdwaarden op te tellen, zoals de volgende:

bijv. 01:38:50, 03:40:25 --> zou idealiter moeten resulteren in 05:19:15

  • Als je Sum (de bovenstaande twee) doet --> krijg je een getal
  • Als je CAST(Sum(de bovenstaande twee) AS TIME) --> gebruikt, krijg je null
  • Er zijn twee andere mogelijkheden getoond in het mijn codefragment.

Voorbeeldcodereferentie . Het zal u de verschillende resultaten tonen die we zojuist hebben besproken. Voor nu lijkt het erop dat formatteren in drie richtingen kan helpen.

time_format(sec_to_time(sum(time_to_sec(logged_duration))),'%h:%i:%s') total_log_duration

De aan MySQL gemelde bug is nog niet verholpen.




  1. MySQL-prestaties:gebruik maken van MySQL-database-indexering

  2. Hoe te controleren of een tabel in een bepaald schema bestaat

  3. Grote hoeveelheden gegevens verwerken in PHP zonder browsertime-out

  4. Gebruik Create Statement om een ​​tabel te maken in SQL Server - SQL Server / T-SQL Tutorial Part 34