自己写了一个函数,
函数的简化版是:
CREATE FUNCTION TestNum(
@date_begin varchar --计算的开始时间
)RETURNS float
AS
BEGIN
DECLARE @testnum float
SELECT @testnum = datediff(d,@date_begin,start_day) from JobNeedRes
RETURN(@testnum)
END用select resmodel_code,resmodel_name,dbo.TestNum('2008-05-01') from JobNeedRes
调用的时候老是提示我 :从字符串转换为 datetime 时发生语法错误。
但是直接用select resmodel_code,resmodel_name,datediff(dd,'2008-05-01',start_day) from JobNeedRes时结果却是正确的表JobNeedRes种的start_day字段我用的varchar型
大家帮我看看是那里的问题,先谢了!
函数的简化版是:
CREATE FUNCTION TestNum(
@date_begin varchar --计算的开始时间
)RETURNS float
AS
BEGIN
DECLARE @testnum float
SELECT @testnum = datediff(d,@date_begin,start_day) from JobNeedRes
RETURN(@testnum)
END用select resmodel_code,resmodel_name,dbo.TestNum('2008-05-01') from JobNeedRes
调用的时候老是提示我 :从字符串转换为 datetime 时发生语法错误。
但是直接用select resmodel_code,resmodel_name,datediff(dd,'2008-05-01',start_day) from JobNeedRes时结果却是正确的表JobNeedRes种的start_day字段我用的varchar型
大家帮我看看是那里的问题,先谢了!
这个时候把@date_begin 转成日期格式.
@date_begin varchar --计算的开始时间
-->@date_begin varchar(100) --计算的开始时间
-->@date_begin varchar(100) --计算的开始时间