我的问题类似于这个MySQL问题,但是我想问的是针对SQL Server:
是否有一个函数或查询可以返回两个日期之间的日期列表?例如,假设有一个名为ExplodeDates的函数:
SELECT ExplodeDates('2010-01-01', '2010-01-13');
这将返回一个只有一列的表,其中包含以下值:
2010-01-01
2010-01-02
2010-01-03
2010-01-04
2010-01-05
2010-01-06
2010-01-07
2010-01-08
2010-01-09
2010-01-10
2010-01-11
2010-01-12
2010-01-13
我认为一个日历/数字表可能能够帮助我。
更新
我决定查看提供的三个代码答案以及执行结果 - 作为总批次的%:
- Rob Farley的答案:18%
- StingyJack的答案:41%
- KM的答案:41%
越低越好
虽然数字表解决方案(由KM和StingyJack在他们的答案中使用)是我的最爱,但我已经接受了Rob Farley的答案,因为它是最快的,比数字表方案快了三分之二。
更新2
Alivia的答案更为简洁。我已经改变了已接受的答案。