based upon the above information i've written a user-defined function to calculate the adjusted DST date/time based on the given date. thanks, this information (and forum) really helped.
CREATE FUNCTION udfGetLocalDateTime (
@datToCheck datetime
) RETURNS datetime
AS
BEGIN
DECLARE @datLocalDateTime datetime
DECLARE @intYear integer
DECLARE @strApril1 varchar(18)
DECLARE @strNov1 varchar(18)
DECLARE @DayOfTheWeek integer
DECLARE @DateDifference integer
DECLARE @datDSTStarts datetime
DECLARE @datDSTEnds datetime
DECLARE @intGMTOffset integer
/* Calculate when DST begins for the year in question */
SET @intYear = DATEPART(yyyy, @datToCheck);
SET @strApril1 = CONVERT(varchar(18), @intYear) + '0401 02:00:00';
SET @DayOfTheWeek = DATEPART(dw, @strApril1); /* Day April 1 falls on in that year */
SET @DateDifference = 8 - @DayOfTheWeek; /* # of days between that day and the following Sunday ("the first Sunday in April", i.e. when DST begins)*/
SET @datDSTStarts = DATEADD(dd, @DateDifference, @strApril1);
/* Calculate when DST is over for the year in question */
SET @strNov1 = CONVERT(varchar(18), @intYear) + '1101 02:00:00';
SET @DayOfTheWeek = DATEPART(dw, @strNov1); /* Day Nov 1 falls on in that year */
SET @DateDifference = 1 - @DayOfTheWeek; /* # of days between that day and the previous Sunday ("the last Sunday in October", i.e. when DST ends) */
SET @datDSTEnds = DATEADD(dd, @DateDifference, @strNov1);
/* Determine if the date in question is in DST or not */
IF @datToCheck BETWEEN @datDSTStarts AND @datDSTEnds
SET @intGMTOffset = -6 /* MDT */
ELSE
SET @intGMTOffset = -7 /* MST */
SET @datLocalDateTime = DATEADD(hh, @intGMTOffset, @datToCheck)
RETURN @datLocalDateTime
END