日期:2014-05-18  浏览次数:20351 次

自定义函数不能有这样的写法
SQL code
Create     FUNCTION dbo.GetLenghtDate(@CustID as Numeric(9,0))   
RETURNS varchar(200)
BEGIN 
    declare @LeftDate datetime
     
    set @LeftDate=(SELECT DATEDIFF(n,SELECT EndTime FROM TableName WHERE pid =(SELECT Max(PID)AS PID FROM TableName WHERE CustID=@CustID),GetDate()))

    return @LeftDate
END

--服务器: 消息 156,级别 15,状态 1,过程 GetLenghtDate,行 6
--在关键字 'SELECT' 附近有语法错误。
--服务器: 消息 170,级别 15,状态 1,过程 GetLenghtDate,行 6
--第 6 行: ',' 附近有语法错误。



自定义函数不能有这样的写法?求教谢谢!

------解决方案--------------------
SQL code

SELECT @LeftDate=DATEDIFF(n,SELECT EndTime FROM TableName WHERE pid =(SELECT Max(PID)AS PID FROM TableName WHERE CustID=@CustID),GetDate())

------解决方案--------------------
探讨
SQL code


SELECT @LeftDate=DATEDIFF(n,SELECT EndTime FROM TableName WHERE pid =(SELECT Max(PID)AS PID FROM TableName WHERE CustID=@CustID),GetDate())

------解决方案--------------------
我以前也遇到过不能用时间函数的问题,数据库的函数里必须使用有明确值的系统函数,好像是这么说的,你试一试把getdate()做为传入参数吧,我以前是这样解决的