There's an easier way:
1. Set up a date table (aka DimDate) (examples abound: google is your friend)
2. Have a yearly process to update the table with new info (e.g. fiscal year, holidays etc.) takes about 30-60 minutes per year
3. Define FKs where you now have datetime columns, pointing to DimDate (or whatever you call it)
4. Join on the date table when you need date info.
The thing is, I've always found it necessary to have human eyes on the date table. Things change from year to year (even the start/end of a fiscal year and what days are statutory holidays).