Gör bara det problematiska DATEADD
i två steg, börja med en grövre tidsenhet (sekunder, minuter, timmar etc.), och sedan falla tillbaka till den finkorniga för resten.
Undvik dock att gå till nivån för veckor och månader eftersom det skulle kräva faktiska kalenderberäkningar och vi skulle föredra att systemet hanterar det.
Exempel nedan behöver beräkna en starttid givet en (möjligen) lång strömlängd 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()))