Considering that even MS has used integer dates and times in MSDB, you'd think they'd have some native functionality that would more easily take care of such things.
Nicely done on avoiding conversions to strings on this. They really can lend to a performace problem.
As a side bar, you're good formula can be simplified a wee bit.
declare @julian_date int = 2012060
select dateadd(year,@julian_date/1000-1900,-1)+@julian_date%1000
For those still using 2005, same thing... just a different test setup.
declare @julian_date int
SELECT @Julian_Date = 2012060
select dateadd(year,@julian_date/1000-1900,-1)+@julian_date%1000
commented on Jun 1 2012 8:42AM