0

请看下面的测试数据。我想获取 avgtime (=timeonsite/visits) 并在 mysql 中显示为“xx:xx:xx”结果。我怎么才能得到它?

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');

在此处输入图像描述

4

2 回答 2

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
于 2013-11-09T08:20:12.683 回答
1

确定您以这种方式计算 avgtime 吗?如果是,mysql选择如下:

select id, timeOnsite,visits, SEC_TO_TIME(TIME_TO_SEC(timeOnsite)/visits) as avgtime
from t
于 2013-11-09T08:10:18.483 回答