PHP Рассчитать время начала и окончания из списка минут с идентификаторами - PullRequest
0 голосов
/ 02 ноября 2010

Извините, что беспокою снова. Я искал старался изо всех сил, смотрел везде и до сих пор не могу решить проблему. Не могли бы вы помочь? - Я бы постарался объяснить проблему.

Проблема: У меня есть список времен с идентификатором, и я хочу просмотреть это время внутри идентификатора, чтобы получить время начала и окончания. Это пример:

   time_id           time_duration

 1   2010-10-15 11:15:00
 1   2010-10-15 11:20:00
 1   2010-10-15 11:25:00
 1   2010-10-15 11:30:00
 2   2010-10-15 11:35:00
 2   2010-10-15 11:40:00
 2   2010-10-15 11:45:00
 2   2010-10-15 11:50:00
 2   2010-10-15 11:55:00
 3   2010-10-15 12:00:00
 3   2010-10-15 12:05:00
 4   2010-10-15 12:10:00
 5   2010-10-15 12:15:00
 5   2010-10-15 12:20:00
 5   2010-10-15 12:25:00

Так что результат этого должен повториться:

   for time_id 1: "Start 11:15  -  End 11:30"
   for time_id 2: "Start 11:35  -  End 11:55"
   for time_id 3: "Start 12:00  -  End 12:05"
   for time_id 4: "Start 12:10  -  End 12:10"
   for time_id 5: "Start 12:15  -  End 12:25"

Возможно ли это? Пожалуйста помоги. Я был на этом с утра. Я пытался использовать для цикла, но я получаю странные ошибки.

Спасибо, ребята, программирование! :)

Ответы [ 2 ]

2 голосов
/ 03 ноября 2010
SELECT 
    time_id, 
    MIN(time_duration) AS start_time, 
    MAX(time_duration) AS end_time
FROM 
    abc_table 
GROUP BY 
    time_id;

Это должно сделать работу.

1 голос
/ 03 ноября 2010

попробуй с этим.Может быть, это может помочь вам.Вам просто нужно немного изменить, я думаю:

 select concat_ws("","for time_id ","",time_id," ",min(time_duration)," - ",max(time_duration)) as result from table1 group by time_id;

это даст вам такой результат:

+---------------------------------------------------------+
| result                                                  |
+---------------------------------------------------------+
| for time_id 1 2010-10-15 11:15:00 - 2010-10-15 11:30:00 |
| for time_id 2 2010-10-15 11:35:00 - 2010-10-15 11:55:00 |
+---------------------------------------------------------+

РЕДАКТИРОВАТЬ: Просто добавьте то, что вам нужно:

mysql> select concat_ws("","for time_id ","",time_id," ",min(TIME_FORMAT(time_duration,'%h:%i:%s'))," - ",max(TIME_FORMAT(time_duration,'%h:%i:%s'))) as result,
    -> DATE_FORMAT(time_duration,'%d-%m-%Y') as date
    -> from table1
    -> group by time_id;


+-----------------------------------+------------+
| result                            | date       |
+-----------------------------------+------------+
| for time_id 1 11:15:00 - 11:30:00 | 15-10-2010 |
| for time_id 2 11:35:00 - 11:55:00 | 15-10-2010 |
+-----------------------------------+------------+
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...