2011-07-26 2 views
0

私のフォームでは、それぞれの時間に関連付けられた多くのイベントが発生します。PHPまたはmySQLを使用して時間の長さを計算しますか?

虫垂切除術の場合、最初のイベントのイベント#1は12:54:33に開始され、最後のイベント#12は2:23:04に発生しました。 虫垂切除のために12の出来事があった。

これらのイベントは、イベント名(Appendectomy)の外部キーを持つ別のテーブルに配置されます。

だから、データベースを使ってやるのが良いか、PHPを使うのがいいのでしょうか。

私はこれらの理由がわからない午前:

PHP:

時間形式は文字列であると私はあなたが時間のフォーマットがある 文字列

を引くことができるとは思いませんこのHH:MM:SSのように、複雑な文字列の場合は となり、後でそれらを再集合させることができます。

のMySQL:列内の

時刻形式は、実際の時間ですがない文字列 でしょう は、mysqlの加入を使用し、その 手順の合計イベントを見つける必要があります。どちらが複雑でしょうか?

ストアドプロシージャ?

私はまだこれが大変新しくなっていますので、私はあなたの指針がこの問題になると思いますか? SQLで

+3

あなたのお手伝いをするデータベースのレイアウトを教えてください。 –

+0

ありがとうございました。遅れてごめんなさい。http://i.imgur.com/0vzoT.png – sqlmole

+0

私の答えはあなたのレイアウトに合わせて変更されました。 –

答えて

2

:最初のイベントの開始と最後のイベントの間の時間差により与えられるよう

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と時間を与えるだろう。

+0

ありがとうございました! – sqlmole

+0

問題はありません=)upvoteにも気をつけますか? –