给你:
declare
@t table ([NAME] varchar (100), [Start Date Time] datetime, [End DAte time] datetime)
declare
@t2 table (rn int, dates date)
declare
@t_res table (Date_Wise date, [Noida_total_ Time] varchar (100), [Delhi_total_ Time] varchar (100))
declare
@i int=1, @d date
insert @t
select 'Noida', convert(datetime, '06-03-2020 06:30', 105), convert(datetime, '06-03-2020 07:30' , 105)
union all
select 'Noida', convert(datetime, '07-03-2020 08:54' , 105), convert(datetime, '07-03-2020 09:45' , 105)
union all
select 'Noida', convert(datetime, '06-03-2020 03:30' , 105), convert(datetime, '06-03-2020 05:30' , 105)
union all
select 'Noida', convert(datetime, '08-03-2020 04:55' , 105), convert(datetime, '08-03-2020 06:30' , 105)
union all
select 'Delhi', convert(datetime, '08-03-2020 04:40' , 105), convert(datetime, '08-03-2020 05:30' , 105)
union all
select 'Delhi', convert(datetime, '14-03-2020 04:40' , 105), convert(datetime, '14-03-2020 05:30' , 105)
insert into @t2
select ROW_NUMBER() over (order by (select dates)), dates from (
select distinct cast([Start Date Time] as date) dates from @t
union
select distinct cast([End DAte time] as date) from @t
)t
declare
@dur_n time
,@dur_d time
while @i<=(select max(rn) from @t2 )
begin
select @d=dates from @t2 where rn=@i
select @dur_n=CONVERT(varchar, DATEADD(ms, datediff(ss, min(t), max(t)) * 1000, 0), 114)
from (
select [Start Date Time] t from @t where cast([Start Date Time] as date) =@d and [NAME]='Noida'
union all
select [End DAte time] t from @t where cast([End DAte time] as date) =@d and [NAME]='Noida'
)t1
select @dur_d=CONVERT(varchar, DATEADD(ms, datediff(ss, min(t), max(t)) * 1000, 0), 114)
from (
select [Start Date Time] t from @t where cast([Start Date Time] as date) =@d and [NAME]='Delhi'
union all
select [End DAte time] t from @t where cast([End DAte time] as date) =@d and [NAME]='Delhi'
)t1
set @i=@i+1
insert into @t_res
select @d, isnull(cast(@dur_n as varchar(100)), 'No data'), isnull(cast(@dur_d as varchar(100)), 'No data')
end
select * from @t_res