需要創建一個帶有日期列表的IN子句。該列表需要按降序排列。我創建了一個@cols變量命名,我試圖用這個代碼來填充它:如何在SQL中使用While循環創建變量
declare @end date='2016/05/30'
declare @begin date = DATEADD(month, DATEDIFF(month, 0, @end), 0) ;
declare @curdate date = @end; -- start on the last day
print @curdate;
print @begin;
DECLARE @cols NVARCHAR (MAX)
while @curdate >[email protected] -- goes from end of the month to beginning of the month
begin
select @cols = @cols + ',[' + CONVERT(NVARCHAR, @curdate, 106) + ']';
select @curdate = DATEADD(DAY,-1,@curdate) -- subtract a day
end
print @cols;
print @curdate;
print @begin;
我希望能獲得16年5月30日,16年5月29日,16年5月28日等(正常當然格式化)。代碼運行時沒有錯誤,但@cols總是空的。
你應該熟悉一個理貨表。你應該在這種情況下使用,而不是循環。 http://www.sqlservercentral.com/articles/T-SQL/62867/ –