One could also just create a table with a virtual computed column datetime column:
create table d_datetime(zero int not null, d compute getdate() )
insert into d_datetime(zero) values (0)
create function f_getdate (@i int)
returns datetime
as
declare @v datetime
select @v = d from d_datetime where zero=0
return @v
go
select convert(varchar,dbo.f_getdate(so.id),109)
from sysobjects so, syscolumns, sysindexes
...