Как выбрать диапазон между Begin_date и End_date - mysql - PullRequest
0 голосов
/ 18 апреля 2019

В этом случае у меня есть таблица «покидать»:

+--------+---------+---------+-------------+---------+-----------+
|ID_LEAVE|ID_WORKER| BEGIN_DATE          | END_DATE              |
+--------+---------+---------+---------+------------+------------+
| 4      |   26    |2019-03-19 07:00:00  |2019-03-22 15:00:00    |  
+--------+---------+---------+----------------------+------------+

В хочу написать запрос MySQL, который выбирает все в диапазоне между датой начала и даты окончания, а затем подводит итоги. Когда я пишу так:

SELECT *, 
time_format(SUM((datediff(END_DATE, BEGIN_DATE) + 1) * (time(END_DATE) - time(BEGIN_DATE))), '%H:%i:%s') AS 'LEAVE TIME' 
FROM leave 
WHERE (DATE(BEGIN_DATE) >= '2019-03-19' AND DATE(END_DATE) <='2019-03-22') 
GROUP BY ID_LEAVE;

Тогда показывает вот так:

    +--------+---------+---------+-------------+---------+------------------------+
    |ID_LEAVE|ID_WORKER| BEGIN_DATE          | END_DATE              | LEAVE_TIME |
    +--------+---------+---------+---------+------------+--------------------+-----
    | 4      |   26    |2019-03-19 07:00:00  |2019-03-22 15:00:00    |  32:00:00  |
    +--------+---------+---------+----------------------+------------+------------- 

Но когда я так делаю:

SELECT *, 
time_format(SUM((datediff(END_DATE, BEGIN_DATE) + 1) * (time(END_DATE) - time(BEGIN_DATE))), '%H:%i:%s') AS 'LEAVE TIME' 
FROM leave 
WHERE (DATE(BEGIN_DATE) >= '2019-03-19' AND DATE(END_DATE) <='2019-03-21') 
GROUP BY ID_LEAVE;

ничего не показывает.

У меня есть вопрос: можно ли показать все в диапазоне (Begin_date и End_date)? Если да, то может кто-нибудь объяснить, пожалуйста, как это написать? Спасибо за любой ответ.

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