Расчет продолжительности, через PHP или MySQL? - PullRequest
0 голосов
/ 26 июля 2011

В моей форме пользователи могут объединять множество событий, каждый из которых связан с индивидуальным временем.

например. Для Аппендэктомии первое Событие № 1 началось в 12:54:33, а последнее событие № 12 произошло в 14:23:04. Так что для аппендэктомии было 12 событий.

Эти события помещаются в отдельную таблицу с внешним ключом к имени события (Appendectomy).

Так что, если бы я хотел вычислить количество времени, было бы лучше сделать это через базу данных или используя PHP.

Я не уверен по следующим причинам:

PHP:

Форматы времени - строки, и я не думаю, что вы можете вычесть струны

Форматы времени такие, как ЧЧ: ММ: СС, которые могут быть сложными. разделить строки и заново соединить их позже.

MySQL:

Форматы времени в столбце - это фактическое время, а не строки Было бы должны использовать соединения MySQL, а затем найти общее количество событий для этого процедура. Что будет сложным?

хранимая процедура?

Я все еще плохо знаком с этим, поэтому мне было интересно, что вы будете делать по этому вопросу?

1 Ответ

2 голосов
/ 26 июля 2011

С помощью 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

Даст вам идентификаторы процедур и продолжительность каждой процедуры, определяемые разницей во времени между началом первого и последним событием.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...