Bare gør det problematiske DATEADD
i to trin, startende med en grovere tidsenhed (sekunder, minutter, timer osv.), og fald derefter tilbage til den finkornede for resten.
Undgå dog at gå til niveauet for uger og måneder, da det ville kræve faktiske kalenderberegninger, og vi foretrækker, at systemet håndterer det.
Eksempel nedenfor skal beregne en starttid givet en (muligvis) stor strømvarighed i millisekunder.
-- 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()))