sql - 将日期序列调用到存储过程的最佳方法
问题描述
我有一个存储过程
EXEC demoProcedure @start='01-01-2019',@end = '02-01-2019'
存储过程采用两个日期参数,并在它们之间运行数据。我的问题是我想让这个程序多次检查多个日期范围。例如我想基本上打电话:
EXEC demoProcedure @start='01-01-2019',@end = '02-01-2019';
EXEC demoProcedure @start='02-01-2019',@end = '03-01-2019';
....
EXEC demoProcedure @start='12-01-2019',@end = '01-01-2020'
或者每个月有效地调用一次这个存储过程。过去,我一直在创建一个临时日期表:
;WITH DateTable AS
(
SELECT row = 1, date = '2019-01-01'
UNION ALL
SELECT row + 1, DATEADD(YEAR, -1, date)
FROM DateTable
WHERE row + 1 <= 7
)
SELECT *
FROM DateTable
在过去的 7 年里,它实际上首先返回了 Jan。有没有办法轻松地将这两者结合起来,为每组日期调用一次存储过程?即调用它为 start=row(1),end=row(2); start=row(2),end=row(3);.... 到行尾?或者有没有更简单的方法来设置所有这些。谢谢!
解决方案
推荐阅读
- c++ - 用于构建 DLL 的 C++ 源文件:从文件中读取文本并将其替换为另一个文件
- dataweave - Mule ESB:如何将二进制形式的有效负载转换为 mule 4、dw 2.0 中的数组
- android - 显示从 MYSQL 到 TextView Android Studio 的最新传感器数据
- swift - AudioKit MIDIListener 强制我覆盖它的协议
- java - 554 交易失败错误:此帐户的发送已暂停
- php - 如何在 TYPO3 中使用 type=inline 创建重复字段?
- android - 如何修复我的调试器在 Android Studio 中连接后立即停止我的应用程序?
- python - 我应该如何从 WSL2 在 Windows 10 中打开远程摄像头?
- python - python apscheduler 不是由 cron 每 1 分钟执行一次
- aws-lambda - Terraform Lambda heredoc 无法解析内联函数变量