sql >> Database teknologi >  >> RDS >> Mysql

Tæller timer ved hjælp af MySQL

Jeg tænkte, at jeg ville sende dig svaret i perspektivet med at opsummere tidsværdirelaterede problemer, som udviklere, brugere har stået over for indtil videre. Det handler ikke kun om formatering.

Du har måske eller måske ikke bemærket, at summen af ​​din samlede tid kan være fejlberegnet af motoren. Yderligere mysql-motor kunne returnere null, selvom du har værdier.

Når du tilføjer/aggregerer tidsværdier, konverteres det til et tal, og resultaterne vil være i talformat. Hvis du forsøger at tilføje tidsværdier som følgende:

for eksempel. 01:38:50, 03:40:25 --> skulle ideelt set resultere i 05:19:15

  • Hvis du gør Sum(de to ovenstående) --> får du et tal
  • Hvis du bruger CAST(Sum(de to ovenstående) SOM TID) --> får du null
  • Der er to andre muligheder vist i mit kodestykke.

Eksempelkodereference . Det vil vise dig de forskellige resultater, som vi lige har diskuteret. Lige nu ser det ud til, at trevejsformatering kunne hjælpe.

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

Den fejl, der er rapporteret til MySQL, er ikke rettet endnu.




  1. HVIS IKKE FINNES VIRKER IKKE

  2. filter mysql-replikation (ignore-db)

  3. Bruger du IF-sætning i MySQL til at opdatere eller indsætte uden Stored Procedure?

  4. Fejl under kompilering af statisk Qt 5.10.0 med PostgreSQL