首页 > 解决方案 > 将日期值(动态变化)传递给存储过程的输入参数

问题描述

如果您看到下面的存储过程,它有2019-01-01,2019-12-31作为输入。

我想做的是,我需要通过2019-01-01,2019-01-31然后2019-02-01,2019-02-28一直到 12 月。

任何人都可以帮助如何动态地按月传递日期时间。

Exec storedprcedurename '2019-01-01','2019-12-31'

标签: sqlsql-server

解决方案


您可以使用 while 循环和 date add 来执行它。此外,您可能需要设置一个最大日期,以便它不会进入无限循环。

Declare @datemin date = '2019-01-01', @maxdate date = '2019-12-31' 


While @datemin <= @maxdate 
Begin 

Declare @dateend date = dateadd(day, -1, dateadd(month,1,@datemin ))
Exec storedprcedurename @datemin , @dateend 
set @datemin  = dateadd(month, 1, @datemin) 
end

推荐阅读