Разные языки и системы используют разные числовые представления дат.
SQL 2005 считает количество дней с 01.01.1900:
SELECT CONVERT(DATETIME, 1)
1900-01-02 00:00:00.000
Excel и Access VBA подсчитывают количество дней с 30.12.1899:
? CDate(1)
12/31/1899
Другие считают количество дней, секунд или иногда миллисекунд от некоторой другой, казалось бы, случайной начальной точки. Я думаю, что MS DOS использовала 31 декабря 1990 года. UNIX использует 1/1/1970.
Так что не пытайтесь переводить их напрямую (то есть численно). Вам придется перевести на фактическое представление даты (01-03-2009), а затем вернуться в другую среду.
Редактировать: В VBA есть несколько забавных нюансов о обратной совместимости и вычислениях високосного года. См. Первое знакомство Джоэла с Биллом Гейтсом для хорошего чтения.