В базе данных MySQL я вставил данные в таблицу «листьев»:
+--------+---------+---------+-------------------------------+-----
|Id_LEAVE|ID_WORKER| BEGIN_DATE | END_DATE |
+--------+---------+------------+--------------------+------------+
| 4 | 26 | 2019-03-19 07:00:00 |2019-03-19 15:00:00 |
+--------+---------+---+----------------------+-------------------+
| 5 | 25 | 2019-03-20 07:00:00 |2019-03-21 15:00:00 |
+--------+---------+---------+----------------------+-------------+
| 6 | 21 | 2019-03-22 07:00:00 |2020-03-22 15:00:00 |
+--------+---------+---------+----------------------+-------------+
Затем я хотел бы отобразить их все с расчетным временем отпуска, но без TIME_FORMAT
и SEC_TO_TIME
, потому чтоя знаю, что у него есть предел стоимости.Когда я выполняю приведенный ниже код:
select
ID_LEAVE, ID_WORKER, BEGIN_DATE, END_DATE,
concat_ws(' ',
concat((sec DIV 60*60), 'h'),
concat((sec DIV 60) % 60, 'm'),
concat(sec % 60, 's')
) AS 'LEAVE TIME'
from (
select
SUM(
to_seconds(
TIMEDIFF(END_DATE, BEGIN_DATE)
)
) sec,
ID_LEAVE,
ID_WORKER,
BEGIN_DATE,
END_DATE
from
leaves group by ID_LEAVE
) s;
Затем я отображаю все из них, но в столбце ОСТАВИТЬ ВРЕМЯ отображаются только пустые значения:
+--------+---------+---------+------------+-----------------------+-----------+
|Id_LEAVE|ID_WORKER| BEGIN_DATE | END_DATE |LEAVE_TIME |
+--------+---------+------------+--------------------+------------+-----------+
| 4 | 26 | 2019-03-19 07:00:00 |2019-03-19 15:00:00 | |
+--------+---------+---+----------------------+-------------------+-----------+
| 5 | 25 | 2019-03-20 07:00:00 |2019-03-21 15:00:00 | |
+--------+---------+---------+----------------------+-------------+-----------+
| 6 | 21 | 2019-03-22 07:00:00 |2020-03-22 15:00:00 | |
+--------+---------+---------+----------------------+-------------+-----------+
У меня возникает вопрос: Где ошибкакоторый не отображает значения LEAVE_TIME.Какие строки кода MySQL я должен исправить?Спасибо за любую помощь.