sql время начала и окончания для пользователя, у которого есть ночные смены или которые остаются в системе после полуночи
у меня есть этот стол
Id_usuario | startime | endtime
------------+-----------------------+--------------------
123124 | 2023-03-01 08:04:05 | 2023-03-01 08:04:06
123124 | 2023-03-01 08:04:06 | 2023-03-01 18:04:37
123124 | 2023-03-01 18:04:37 | 2023-03-01 18:04:38
567123 | 2023-03-01 07:20:33 | 2023-03-01 07:20:34
567123 | 2023-03-01 07:20:34 | 2023-03-01 23:59:58
567123 | 2023-03-01 23:59:58 | 2023-03-01 23:59:59
567123 | 2023-03-02 00:00:00 | 2023-03-02 00:00:01
567123 | 2023-03-02 00:00:01 | 2023-03-02 00:41:33
567123 | 2023-03-02 00:41:33 | 2023-03-02 00:41:34
567123 | 2023-03-02 08:02:47 | 2023-03-02 08:02:48
567123 | 2023-03-02 08:02:48 | 2023-03-01 18:42:35
567123 | 2023-03-02 18:42:36 | 2023-03-01 18:42:36
и мне нужно знать время начала и время окончания.
Я пробовал это:
select
id,
cast ([Startime]as date) as Fecha,
min (cast ([Startime] as datetime)) as inicio,
max (cast ([endtime] as datetime)) as final,
from
tabla
group by
id, cast ([Startime]as date)
И это работает для всего персонала, у которого смена начинается в тот же день, но не для тех, кто работает в ночную смену, или для тех, кто по какой-то причине остается подключенным к приложению после полуночи.
Полученные результаты:
Id_usuario | starttime | end time
------------+-----------------------+--------------------
123124 | 2023-03-01 08:04:05 | 2023-03-01 18:04:38
567123 | 2023-03-01 07:20:33 | 2023-03-01 23:59:59
567123 | 2023-03-02 00:00:00 | 2023-03-01 18:42:36
Что мне нужно :
Id_usuario | starttime | end time
------------+-----------------------+--------------------
123124 | 2023-03-01 08:04:05 | 2023-03-01 18:04:38
567123 | 2023-03-01 07:20:33 | 2023-03-02 00:41:34
567123 | 2023-03-02 08:02:47 | 2023-03-01 18:42:36
Я был бы признателен, если бы кто-нибудь мог мне помочь