在我的表单中,用户会根据与每个事件关联的个别时间来汇总许多事件。
e.g。对于阑尾切除术,第一个事件#1开始于下午12:54:33,最后一个偶数事件#12发生在下午2:23:04。 所以对于阑尾切除术,有12个事件。
这些事件放在一个单独的表中,其中包含事件名称的外键(Appendectomy)。
因此,如果我想计算通过数据库或使用PHP更好的时间量。
由于以下原因,我不确定:
PHP:
时间格式是字符串,我认为你不能减去 字符串
时间格式就像这个HH:MM:SS,可能很复杂 拆分字符串并稍后重新协调它们。
MySQL的:
列中的时间格式是实际时间而不是字符串 将 必须使用mysql连接,然后找到它的总事件 程序。哪个会很复杂?
存储过程?
我还是很新的很多,所以我想知道你对此事的指导意见是什么?
答案 0 :(得分:2)
使用SQL:
SELECT procedure_id, SUBTIME(events_max.start, events_min.start) AS duration
FROM procedure
JOIN ( SELECT procedure_id, SELECT MAX(time) AS start FROM procedure_events GROUP BY procedure_id ) AS events_max USING ( procedure_id )
JOIN ( SELECT procedure_id, SELECT MIN(time) AS start FROM procedure_events GROUP BY procedure_id ) AS events_min USING ( procedure_id )
GROUP BY procedure_id
将为您提供每个程序的程序ID和持续时间,由第一个事件开始和最后一个事件之间的时间差给出。