Согласно тому, что я понял, код делает, это может быть эквивалентом. Он усекает время и добавляет дни как rownum-1.
--This is to create sample rows
WITH
E(n) AS(
SELECT n FROM (VALUES(0),(0),(0),(0),(0),(0),(0),(0),(0),(0))E(n)
),
E2(n) AS(
SELECT a.n FROM E a, E b
),
E4(n) AS(
SELECT a.n FROM E2 a, E2 b
),
cteTally(rownum) AS(
SELECT ROW_NUMBER() OVER(ORDER BY (SELECT NULL)) n
FROM E4
)
--This is the actual formula
SELECT CONVERT( datetime2, DATEADD( DD, DATEDIFF( DD, 0, '2016-03-18 00:00:00') + rownum - 1, 0))
FROM cteTally;