2013-11-09 2 views
0

см. Ниже приведенные ниже данные испытаний. Я хочу получить avgtime (= timeonsite/посещения) и отобразить как «xx: xx: xx» результат в mysql. как я могу его получить?Как получить среднее время «xx: xx: xx» на mysql?

SET FOREIGN_KEY_CHECKS=0; 

-- ---------------------------- 
-- Table structure for `t` 
-- ---------------------------- 
DROP TABLE IF EXISTS `t`; 
CREATE TABLE `t` (
    `id` int(11) NOT NULL auto_increment, 
    `timeOnsite` time default NULL, 
    `visits` int(11) default NULL, 
    PRIMARY KEY (`id`) 
) ENGINE=MyISAM AUTO_INCREMENT=4 DEFAULT CHARSET=utf8; 

-- ---------------------------- 
-- Records of t 
-- ---------------------------- 
INSERT INTO `t` VALUES ('1', '04:05:30', '20'); 
INSERT INTO `t` VALUES ('2', '03:00:00', '10'); 
INSERT INTO `t` VALUES ('3', '00:01:30', '17'); 

enter image description here

ответ

1

уверены, что вы вычислить avgtime таким образом? Если да, то MySQL выберите ниже:

select id, timeOnsite,visits, SEC_TO_TIME(TIME_TO_SEC(timeOnsite)/visits) as avgtime 
from t 
+0

Я люблю тебя, спасибо большое –

2

Вы можете использовать TIME_TO_SEC функцию для изменения формата xx:xx:xx в секундах.

SELECT TIME_TO_SEC('00:01:30')/17; # return 5.2941 

А затем через SEC_TO_TIME вы можете конвертировать секунды время назад, как показано ниже:

SELECT SEC_TO_TIME(TIME_TO_SEC('00:01:30')/17); # return 00:00:05 
Смежные вопросы