como puedo hacer la resta de fechas y horas t me entregue en horas el resultado sin contar con los dias habiles y un horario( de 09:00 - 19:00)
yo tengo este procedimiento, pero no se k mas hacer
Código PHP:
DELIMITER $$
DROP PROCEDURE IF EXISTS `fechaNoHabil` $$
CREATE DEFINER=`mesaayuda`@`%` PROCEDURE `fechaNoHabil`()
BEGIN
DECLARE nombretabla VARCHAR(100) DEFAULT RAND();
DROP TABLE IF EXISTS nombretabla;
CREATE TEMPORARY TABLE nombretabla(
idTicket INT,
fechaSolicitud DATE,
horaSolicitud TIME,
fechaAsignacion DATE,
horaAsignacion TIME,
fechaTrabajo DATE,
horaTrabajo TIME,
t_respuesta VARCHAR(20),
t_reparacion VARCHAR(20)
)ENGINE = MEMORY DEFAULT CHARSET = latin1 COLLATE = latin1_spanish_ci;
INSERT INTO nombretabla(idTicket, fechaSolicitud, horaSolicitud, fechaAsignacion, horaAsignacion, fechaTrabajo, horaTrabajo, t_respuesta, t_reparacion)
SELECT
sol.idsolicitud,
DATE_FORMAT(sol.fecha_crea, '%Y-%m-%d'),
DATE_FORMAT(sol.fecha_crea, '%H:%i:%s'),
DATE_FORMAT(asi.fecha_crea, '%Y-%m-%d'),
DATE_FORMAT(asi.fecha_crea, '%H:%i:%s'),
DATE_FORMAT(tra.fecha_crea, '%Y-%m-%d'),
DATE_FORMAT(tra.fecha_crea, '%H:%i:%s'),
IF(DATE_FORMAT(sol.fecha_crea, '%w') <> 0 OR DATE_FORMAT(sol.fecha_crea, '%w') <> 6 OR DATE_FORMAT(asi.fecha_crea, '%w') <> 0 OR DATE_FORMAT(asi.fecha_crea, '%w') <> 6,NULL),
IF(DATE_FORMAT(asi.fecha_crea, '%w') <> 0 OR DATE_FORMAT(asi.fecha_crea, '%w') <> 6 OR DATE_FORMAT(tra.fecha_crea, '%w') <> 0 OR DATE_FORMAT(tra.fecha_crea, '%w') <> 6,TIMESTAMPDIFF(HOUR, asi.fecha_crea, tra.fecha_crea),NULL)
FROM servicedesk.solicitud sol
LEFT JOIN servicedesk.asignacion asi ON sol.idsolicitud = asi.idsolicitud AND asi.activo = 1 AND asi.visible = 1
LEFT JOIN servicedesk.trabajo tra ON asi.idasignacion = tra.idasignacion AND tra.activo = 1 AND tra.visible = 1
WHERE sol.activo = 1 AND sol.visible = 1 ;
SELECT * FROM nombretabla ORDER BY idTicket ASC;
END $$
DELIMITER ;