请问一下函数有问题嘛?在SQLSERVER 2000下编译通过,但运行不通过。如果把 dbo.getdate() 改成 getdate(),编译不通过。但一下代码2005通过,并能运行!!在线等!!!create function dd(@i int)
returns varchar(8)
as
begin
declare @r varchar(8) if @i <=28
select @r = convert(varchar(8),dbo.getdate(),120)
return @rendgo
Invalid object name 'dbo.getdate'.运行报以上错误
Invalid use of 'getdate' within a function.去掉 dbo的话,编译报以上错误。。郁闷
如果一定要用, 最好把当前日期作为参数传入函数。
如果要用,只能先获取getdate值,然后传参数给函数.
@DateFit1 VARCHAR(20),
@DateFit2 VARCHAR(20),
@DateFit3 VARCHAR(20),
@DateFit4 VARCHAR(20),
@DateFit5 VARCHAR(20),
@DateFit6 VARCHAR(20),
@DateFit7 VARCHAR(20),
@DateFit8 VARCHAR(20),
@DateFit9 VARCHAR(20),
@DateFit10 VARCHAR(20),
@DateFit11 VARCHAR(20),
@DateFit12 VARCHAR(20),
@DateFit13 VARCHAR(20),
@DateFit14 VARCHAR(20),
@DateFit15 VARCHAR(20),
@DateFit16 VARCHAR(20),
@DateFit17 VARCHAR(20),
@DateFit18 VARCHAR(20),
@DateFit19 VARCHAR(20),
@DateFit20 VARCHAR(20),
@DateFit21 VARCHAR(20),
@DateFit22 VARCHAR(20),
@DateFit23 VARCHAR(20),
@DateFit24 VARCHAR(20),
@DateFit25 VARCHAR(20),
@DateFit26 VARCHAR(20),
@DateFit27 VARCHAR(20),
@DateFit28 VARCHAR(20),
@DateFit29 VARCHAR(20),
@DateFit30 VARCHAR(20),
@DateFit31 VARCHAR(20), @i int,@sp varchar(4000)select @i=1
while (@i<32)
begin
select dbo.Get_Now_Day(@i,getdate())
select @sp = 'set @DateFit' + cast(@i as varchar(2)) + '=''' + dbo.Get_Now_Day(@i,getdate()) + ''''
print @sp
exec ( @sp)
select @i=@i+1
end
再问一个,我以上的赋值语句也不对嘛?为什么啊?难道只能一个一个变量来赋值?
as
begin
declare @r varchar(8) if @i <=28
select @r = convert(varchar(8),@getdate,120) return @r end go--調的時候把getdate()傳入
然后insert 31筆資料進去
可以用变相的代替:create view mydate as
select getdate()
go
select date from mydate
select getdate() date
go
select date from mydate
create view get_date as
select getdate() date
go
declare @d datetime
select @d=date from get_date
select @d