Mysql текст в формат данных, особенно в MM: SS - PullRequest
0 голосов
/ 28 декабря 2018

Мне интересно, как выразить среднее время, отформатированное как "MM: SS".
У меня есть таблица, набранная с текстом.

myTable1
09:37
10:17
...

Если я изменил myTable на тип ВРЕМЯ, который возвращает «час: минута: 00», а не «ММ: СС»

myTable2
09:37:00
10:17:00

Итак,я обнаружил, что

avg(time_format(sec_to_time(round(time_to_sec(TPP)/60, 0)), '%i:%s'))

возвращает

myTable3
09:37
10:17

моя конечная цель - усреднить эти строки. Когда я использую avg () для myTable1,3, он возвращает '9.5000'
какЯ ожидал, что он вернёт '09: 57 '


Мои вопросы пришли с целью усреднить myTable1 с форматированием "MM: SS"

Ответы [ 2 ]

0 голосов
/ 28 декабря 2018

Вы хотите сначала преобразовать вашу строку во время, а затем в секунды, чтобы вычислить среднее значение.Затем преобразуйте обратно в строку с желаемым форматом:

TIME_FORMAT(SEC_TO_TIME(
    AVG(TIME_TO_SEC(STR_TO_DATE(TPP, '%h:%i')))
), '%h:%i')
0 голосов
/ 28 декабря 2018

Как насчет добавления компонента часа, а не деления на 60?

time_format(sec_to_time(avg(time_to_sec(concat('00:', TPP)
                                       )
                           )
                       ), '%i:%s'
           )

avg() также следует вызывать для числового значения секунд перед преобразованием обратно в формат времени.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...