Оптимальным решением было бы изменить структуру базы данных, используя правильный тип данных (datetime
).
Если это невозможно, вы можете использовать stuff
для создания стандартного формата datetime
и выполнить от cast
до datetime
.Затем вы можете использовать datediff
для расчета разницы в днях:
declare @tmp table (date_1 varchar(50), date_2 varchar(50))
insert into @tmp values ('201810031030','201810051030')
select
cast(stuff(stuff(date_1, 11,0,':') + ':00', 9,0,' ') as datetime) as date_1
,cast(stuff(stuff(date_2, 11,0,':') + ':00', 9,0,' ') as datetime) as date_2
,DATEDIFF(
day,
cast(stuff(stuff(date_1, 11,0,':') + ':00', 9,0,' ') as datetime),
cast(stuff(stuff(date_2, 11,0,':') + ':00', 9,0,' ') as datetime)
) + 1 as diff
from @tmp
Результат: