Я бы хотел разделить время смен. время ночной смены (22:01:00 (день 1) - 06:00:00 (день 2)) У меня есть 2 столбца start_date и end_Date, предположим, что человек начал в 23:55:00 и финишировал sh 1:20: 00 снова началось в 1:30:00 и завершилось sh в 05:50:00. Таких записей несколько.
пример 1
Могу я узнать, как разделить рабочее время на 2 части день-1 - (23:55:00) - (23:59:59) (4/5 минут) (между 23:55:00 - 1:20:00) день-2 - (12:00:00) - (06:00:00) (остальное рабочее время)
и еще один пример (2)
человек приступил к работе в 21:00. Смены должны быть разделены следующим образом: с 21:00 до 22:00 (после обеда) с 22:00 до 23:59 (день 1) с 12:00 до 6:00 (день 2)
Я пробовал это например 1
select
start_dt as start_date,
end_dt as end_date,
ucase(rep) as assignee,
timediff(end_dt,start_dt) as total_time_spent,
(case
when
CONVERT(start_dt,TIME) > convert('22:01:00',TIME)
and convert(end_dt,TIME) <= CONVERT('11:59:59',TIME)
then
timediff(end_dt,start_dt)
end ) as time_spent_day_1 ,
(case
when
CONVERT(start_dt,TIME) > convert('12:00:00',TIME)
-- and convert(end_dt,TIME) <= CONVERT('05:59:59',TIME)
then
timediff(end_dt,start_dt)
end) as time_spent_day_2
from table_1
WHERE CONVERT(start_dt,TIME) > convert('22:01:00',TIME)
and CONVERT(DATE_ADD(end_dt, INTERVAL 1 DAY),TIME) <= convert('05:59:59',TIME)
and ucase(rep) like '%xyz%' ```