我有以下功能:
CREATE FUNCTION ISRELKDVG(@WUNSCH_LIEFERTERMIN VARCHAR) RETURNS int AS
BEGIN
DECLARE @sTerminNone VARCHAR(8)
DECLARE @sTerminFrom VARCHAR(8)
SET @sTerminNone = '00000000'
SET @sTerminFrom = CONVERT(VARCHAR(8), GETDATE() - 100, 112) -- 100 days in the past
IF (@WUNSCH_LIEFERTERMIN <> @sTerminNone AND @WUNSCH_LIEFERTERMIN >= @sTerminFrom)
RETURN 1
RETURN 0
END
作为函数参数给出的变量是日期,格式为“YYYYMMDD”。问题是函数永远不会返回 1。
我发现链接说将 varchar 与未指定的长度进行比较可能会导致错误。它是否也指传递给函数的 varchar?