服务器: 消息 443,级别 16,状态 1 在函数内不正确地使用了 'getdate'

服务器: 消息 443,级别 16,状态 1,过程 GetNow,行 6

在函数内不正确地使用了 'getdate'。
 
我打算在SQL Server 2000中创建一个根据当前时间进行数据对比的自定义函数,报错如上面显示,函数如下
 
create function GetNow() returns datetime
as
begin
 
declare @getdate datetime
select @getdate = getdate()
return @getdate
 
end
 
为什么会出现这个原因呢?经网上搜索得到这个:函数里面不能用不确定的数据!
那么怎么解决呢?
1、可以建立一个视图,存下系统时间,自定义函数读取视图的数据!
2、可以把当前的系统时间当做参数,传递进自定义函数,比如 
create function dbo.GetNow2(@getdate datetime) returns datetime
as
begin
 
/*数据对比操作*/
return @getdate
 
end
那么调用方法的时候,只需要多传递一个参数就可以了,比如 dbo.GetNow2(getdate()) 
 
评论 (0) 分享 ()

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址