0
比方說,如果日期是2015年1月1日至2016年1月1日如何通過每月指定日期範圍,分成在SQL Server和環月明智的執行一些操作
我想這些分裂每月格式明智的日期,然後使用它們在遊標變量循環
例如每月日期應爲2015年1月1日和2015年1月31日,並使用這兩個值在2個變量,並作出循環,直到它永不結束整個日期範圍,即01/01/2016
比方說,如果日期是2015年1月1日至2016年1月1日如何通過每月指定日期範圍,分成在SQL Server和環月明智的執行一些操作
我想這些分裂每月格式明智的日期,然後使用它們在遊標變量循環
例如每月日期應爲2015年1月1日和2015年1月31日,並使用這兩個值在2個變量,並作出循環,直到它永不結束整個日期範圍,即01/01/2016
首先創建一個數字表。這個數字將代表幾個月,幾天,任何你需要的東西。
SELECT TOP 10000 N=IDENTITY(INT, 0, 1)
INTO dbo.Numbers
FROM master.dbo.syscolumns a CROSS JOIN master.dbo.syscolumns b;
我會推薦將看到這篇文章的額外信息https://dba.stackexchange.com/questions/11506/why-are-numbers-tables-invaluable
然後創建每月日期
declare @DateIni datetime, @DateEnd datetime
set @DateINI='20150101'
set @DateEnd='20160101'
select DATEADD(m,n,@dateini) as 'month' from Numbers
where n<=DATEDIFF(mm,@dateini,@DateEnd)
和日常的日期列表(請注意,我改變了DATEADD參數從「毫米」到'dd')
declare @DateIni datetime, @DateEnd datetime
set @DateINI='20150101'
set @DateEnd='20150131'
select DATEADD(dd,n,@dateini) as 'month' from Numbers
where n<=DATEDIFF(dd,@dateini,@DateEnd)
只需創建一個日期表,其中包含您需要的所有日期作爲行。讓你的生活變得更加簡單 - 甚至當你有一張桌子時,甚至不需要循環 –
任何示例如何做到這一點 – user1030181
只需使用帶日期變量的while循環,並在每次迭代時插入一個新行。你可能會用谷歌找到樣本,但寫起來並不難 –