времени, что есть:
Таблица task_time с полями task_id, started_at, ended_at, is_active, spent_time
tasks относится к task_time как 1 to many, то есть в одного таска может быть много записей о времени, вопрос в том как узнать сколько было потрачено времени на таск за конкретный период? Можно ли это решить силами бд или надо выбирать все таски и уже на пхп считать время которое входит в указаный период? Вся сложность в том что бы правильно считать такие ситуации когда период указан допустим с 05.01.2018 по 06.01.2018 а работа над таском велась начиная с 04 числа по 07 и запись в бд есть только одна где started_at = timestamp за 4 число, а ended_at за 07 и эта запись уже не попадает в запрос при условии:
WHERE started_at >= 05.01.2018 AND ended_at <= 06.01.2018
Что гуглить что бы найти ответ? Можно ли решить это только на стороне бд? Я пока вижу вариант вытягивать все таски и на пхп уже высчитывать время и формировать масив с верными данными
http://sqlfiddle.com/#!17/01070/2
Обсуждают сегодня