我需要计算上午8点到晚上10点之间的时间。其他时间我不需要。 现在我通过excel执行此操作,并且我希望自动执行该过程
我有下表,事件
start_date | end_date | duration_REAL | duration_08AM_a_10PM
-------------------------------------------------------------------------------
08:00AM 20-05-2014 | 02:00 PM 20-05-2014 | 06:00 | 06:00
04:00AM 20-05-2014 | 06:00 AM 20-05-2014 | 02:00 | 00:00
08:00AM 20-05-2014 | 10:00 PM 20-05-2014 | 14:00 | 14:00
04:00AM 20-05-2014 | 11:00 PM 20-05-2014 | 19:00 | 14:00
04:00AM 20-05-2014 | 04:00 PM 21-05-2014 | 36:00 | 24:00
DATE = TIME DAY-MM-YY
我所拥有的是实际持续时间,但是,我希望在上午8点到晚上10点之间的事件持续时间。
例如,
答案 0 :(得分:0)
这是我的答案......谢谢你们!
DELIMITER $$
CREATE FUNCTION `BD`.`func_duration`(fecha_ini DATETIME, fecha_fin DATETIME)
RETURNS FLOAT
BEGIN
DECLARE recorte FLOAT;
SET recorte = -1;
WHILE (fecha_ini <= fecha_fin) DO
IF (HOUR(fecha_ini) >= 6 AND HOUR(fecha_ini) <= 21) THEN
SET recorte = recorte + 1;
END IF;
SET fecha_ini = DATE_ADD(fecha_ini, INTERVAL 1 MINUTE);
END WHILE;
RETURN recorte;
END$$
DELIMITER ;