/********************************/
/* ASSUMES DATE FORMAT IS MM/DD */
/********************************/
--Create a table
DECLARE @DatesToReview TABLE
(
FromDate CHAR(5)
, ThruDate CHAR(5)
, FromDateWithBogusYear DATETIME
, ThruDateWithBogusYear DATETIME
)
--Populate some sample data
INSERT INTO @DatesToReview (FromDate, ThruDate) VALUES ('12/10', '01/15')
INSERT INTO @DatesToReview (FromDate, ThruDate) VALUES ('01/15', '12/10')
INSERT INTO @DatesToReview (FromDate, ThruDate) VALUES ('11/11', '01/15')
INSERT INTO @DatesToReview (FromDate, ThruDate) VALUES ('02/10', '03/15')
INSERT INTO @DatesToReview (FromDate, ThruDate) VALUES ('09/01', '10/15')
INSERT INTO @DatesToReview (FromDate, ThruDate) VALUES ('03/10', '11/15')
INSERT INTO @DatesToReview (FromDate, ThruDate) VALUES ('11/15', '03/10')
INSERT INTO @DatesToReview (FromDate, ThruDate) VALUES ('11/15', '11/20')
INSERT INTO @DatesToReview (FromDate, ThruDate) VALUES ('11/20', '11/15')
--Update the FromDateWithBogusYear column. We assume that if the the FromDate value is larger than the thruDate, it occurred in the previous year
UPDATE @DatesToReview
SET FromDateWithBogusYear = (
CASE
WHEN CAST(SUBSTRING(FromDate, 1, 2) AS INTEGER) <= CAST(SUBSTRING(ThruDate, 1, 2) AS INTEGER) AND CAST(SUBSTRING(FromDate, 4, 2) AS INTEGER) <= CAST(SUBSTRING(ThruDate, 4, 2) AS INTEGER) THEN CAST(FromDate + '/' + SUBSTRING(CAST(DATEPART(YYYY, GETDATE()) AS CHAR(4)), 3, 2) AS DATETIME)
ELSE CAST(FromDate + '/' + SUBSTRING(CAST(DATEPART(YYYY, DATEADD(YEAR, -1, GETDATE())) AS CHAR(4)), 3, 2) AS DATETIME)
END
)
--Update the ThruDateWithBogusYear column by just appending this year's date on the end
UPDATE @DatesToReview
SET ThruDateWithBogusYear = ThruDate + '/' + SUBSTRING(CAST(DATEPART(YYYY, GETDATE()) AS CHAR(4)), 3, 2)
SELECT
FromDate
, ThruDate
, FromDateWithBogusYear
, ThruDateWithBogusYear
, CASE
WHEN DATEDIFF(DAY, FromDateWithBogusYear, ThruDateWithBogusYear) <= 60 THEN 'Yes'
ELSE 'No'
END 'IsWithinPast60Days'
FROM @DatesToReview