2017-10-12 60 views
0

我正在调用的我的程序的工作日复一日。我需要通过/迭代到当前日期的一天,以便它执行操作。有一些可以帮助这一点。以下是我尝试过的示例,但无法工作。我是初学者。SQL SERVER - 需要一个简单的T-SQL程序来迭代日期

USE [aaa] 
GO 

DECLARE @return_value int 
DECLARE @VarDate1 Datetime ='2015-09-30' 
DECLARE @VarDate2 Datetime ='2015-09-30' 


WHILE (@VarDate2 <= '2015-12-10') 
BEGIN 
EXEC @return_value = [dbo].[procname] 
     @tday1 = @VarDate1 , 
     @tday2 = @VarDate2 

SET @VarDate2 = DATEADD(DAY, 1, @VarDate2) 
set @VarDate1 = @VarDate2 

SELECT 'Return Value' = @return_value 
END 
GO 
+2

定义“无法工作”。你有错误吗?它现在循环吗?另外,为什么总是有两个相同的变量? –

+0

PLSQL和SQL SERVER不一样。请删除plsql标签。 –

+0

@ WEI_DBA我没有得到任何错误,过程没有结束。该过程需要开始日期和结束日期,因此让它们相同。 – mux

回答

-1

通过检查你的代码,你可能会得到一个错误,而试图设置@ VarDate1和@ VarDate2值。尝试下面的代码:

DECLARE @return_value int 
DECLARE @VarDate1 Datetime = CAST('20150930 00:00:00' AS DATETIME) 
DECLARE @VarDate2 Datetime = CAST('20150930 00:00:00' AS DATETIME) 


WHILE (@VarDate2 <= '20151210') BEGIN 

    SET @VarDate2 = DATEADD(DAY, 1, @VarDate2) 
    SET @VarDate1 = @VarDate2 

    PRINT @VarDate2 --Change your logic here 
END 
GO