我需要找出兩個日期之間的記錄,但棘手的部分是獲得過去5年之間的記錄在通過日期之間。例如,我將開始日期作爲「12/01」和結束日期作爲「12/31」,因此我需要過去5年的「12月01日」和「12月31日」之間的記錄。這意味着記錄應該在每年的月份和日期之間。不是所有的月份。我正在嘗試以下但它不工作:SQL Server:查找兩個日期之間的記錄
DECLARE @StartDate DATE = '12/01/2011', @EndDate DATE = '12/01/2016'
DECLARE @StartDay VARCHAR(2) = '01'
,@EndDay VARCHAR(2) = '31'
,@StartMonth VARCHAR(2) = '12'
,@EndMonth VARCHAR(2) = '12'
,@CurrentYear VARCHAR(2) = '2016'
SELECT * FROM [Records]
WHERE [UpdatedDate] BETWEEN @StartDate AND @EndDate
AND (DAY([UpdatedDate]) = CAST(@StartDay AS INT) OR DAY([UpdatedDate]) = CAST(@EndDay AS INT))
AND (MONTH([UpdatedDate]) = CAST(@StartMonth AS INT) OR MONTH([UpdatedDate]) = CAST(@EndMonth AS INT))
AND (YEAR([UpdatedDate]) = CAST((@CurrentYear - 5) AS INT) OR YEAR([UpdatedDate]) = CAST(@CurrentYear AS INT))
有一天器件還。 – User2682