Делаешь таблицу с датами, джойнишь со своей таблицей, там где не приджойнилось тянешь остаток лагом. Где-то у меня была похожая задача, через 2 CTE делал.
declare @mydayte date = '2021/01/02'; select ss from ( select dt as dtS ,ISNULL(DATEADD(DD,-1, LEAD(dt) OVER (ORDER BY dt)),'9999/12/31') as dtE ,ss from #t ) as intervals where @mydayte between dtS and dtE