Every database engine seems to use slightly different date arithmatic. For MS-SQL 7.0 and later I'd use:
PHP Code:
SELECT a.years
, Convert(CHAR(10), DateAdd(year, a.years, a.[myDate]), 121)
, Convert(CHAR(10), a.[myDate], 121)
FROM (SELECT [myDate], CASE WHEN DateAdd(year
, DateDiff(year, [myDate], GetDate()), [myDate]) > GetDate()
THEN DateDiff(year, [myDate], GetDate()) - 1
ELSE DateDiff(year, [myDate], GetDate())
END AS years
FROM dbo.tMyDates) AS a
WHERE DateDiff(day, DateAdd(year
, a.years, a.[myDate]), GetDate()) < 7
ORDER BY 2, 3
You don't strictly have to keep the years and the event separate, but it makes things easier for me to manipulate.
-PatP