我收到错误“操作数数据类型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