我需要循環一個月內的每一天,但固定的數字作爲月份的最後一天。計算月份開始/結束時固定的月份最後一天
E.g.如果該月的最後一天被固定爲30, 月將成爲:
開始每月:2012年12月31日12:00 AM 月結束:2013年1月30日上午12:00
我已經實現了除了二月份之外,其他的工作都很完美。我似乎無法找到一個解決方案,無論月結束日期是多少,都能確保每個月都能正常工作。 任何建議,非常感謝。
DECLARE @dt DATETIME
DECLARE @DayInstance DATETIME
DECLARE @LastDayOfMonth DATETIME
DECLARE @monthEndDate INT = 30
SET @dt = '2012-01-01 00:00:00.000'
WHILE @dt < GETDATE()
BEGIN
SET @DayInstance = @dt
SET @LastDayOfMonth = (SELECT CONVERT(VARCHAR(25),DATEADD(dd,-(DAY(DATEADD(mm,1,@dt))),DATEADD(mm,1,@dt)),101))
IF @monthEndDate > 0
BEGIN
SET @LastDayOfMonth = DATEADD(DAY,(@monthEndDate-DATEPART(dd,@LastDayOfMonth)),@LastDayOfMonth)
SET @DayInstance = DATEADD(MONTH, -1, @LastDayOfMonth)
SET @DayInstance = DATEADD(DAY, 1, @DayInstance)
END
PRINT 'Month Start Date: ' + CAST(@DayInstance AS NVARCHAR(20))
PRINT 'Month End Date: ' + CAST(@LastDayOfMonth AS NVARCHAR(20))
PRINT ''
WHILE @DayInstance <= @LastDayOfMonth
BEGIN
-- Going to do more stuff here
SET @DayInstance = DATEADD(DAY, 1, @DayInstance)
END
SET @dt = DATEADD(MONTH, 1, @dt)
END
哇!謝謝你。就像你所做的那樣,當然不是我想要的路線。似乎完美地工作。 :-) 非常感謝 – JIbber4568