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

function を使用して、フォーマットを秒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

そのような方法で平均時間を計算してよろしいですか? はいの場合、mysql は以下を選択します。

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