There's a couple of different ways to do it, but I'd recommend using CASE statements, honestly.
SELECT column1, column2,
CASE
WHEN @date_part = 'd' THEN DATEADD(d, @some_val, column3)
WHEN @date_part = 'm' THEN DATEADD(m, @some_val, column3)
WHEN @date_part = 'y' THEN DATEADD(y, @some_val, column3)
END AS column3_added
FROM table