Stačí provést problematické DATEADD
ve dvou krocích, počínaje hrubší časovou jednotkou (sekundy, minuty, hodiny atd.), poté se vrátit zpět k jemnozrnné pro zbytek.
Vyhněte se však přechodu na úroveň týdnů a měsíců, protože by to vyžadovalo skutečné kalendářní výpočty a byli bychom raději, kdyby to zvládl systém.
Níže uvedený příklad potřebuje vypočítat počáteční čas daný (možná) velkým trváním proudu v milisekundách.
-- large durations can overflow the integer argument needed for DATEADD
-- so do as two steps subtracting minutes (60000ms) and then remaining milliseconds.
DATEADD(ms, -large_duration_ms%60000, DATEADD(minute, -large_duration_ms/60000, GETDATE()))