函数的SQL返回日期设置变量时发生错误

时间:2018-11-12 10:20:03

标签: sql sql-server

我收到错误“操作数数据类型varchar对于减法运算符无效”。在第6行中,我设置了虚拟变量。

当我删除第一部分时没有错误,因此我认为变量的设置还会尝试执行字符串中的某些功能。

是否可以在不使设置也尝试执行功能的情况下通过函数设置变量?还是应该以完全不同的方式来完成?

当我想要从今天起7天的时间间隔时,我只想选择使用dbo.TimeInterval(7)(或类似的东西)而不是“ REPLACE([US-Date],'-','') between CONVERT(int,CONVERT(varchar(10),GETDATE()-7,112)) and CONVERT(int,CONVERT(varchar(10),GETDATE(),112))”。

CREATE FUNCTION dbo.TimeInterval(@Input VARCHAR(1000))
RETURNS VARCHAR(1000)
AS BEGIN
    DECLARE @dummy VARCHAR(1000)

    SET @dummy = 'REPLACE([US-Date],'-','') between CONVERT(int,CONVERT(varchar(10),GETDATE()-Tidsinterval,112)) and CONVERT(int,CONVERT(varchar(10),GETDATE(),112))'
    SET @dummy = REPLACE(@dummy, 'Tidsinterval',@Input)
    RETURN @dummy
END

0 个答案:

没有答案