Uzyskaj listę dat między dwiema datami za pomocą funkcji

Moje pytanie jest podobne doto Pytanie MySQL, ale przeznaczone dla SQL Server:

Czy istnieje funkcja lub zapytanie, które zwróci listę dni między dwiema datami? Na przykład, powiedzmy, że istnieje funkcja o nazwie ExplodeDates:

SELECT ExplodeDates('2010-01-01', '2010-01-13');

Spowoduje to zwrócenie tabeli z pojedynczą kolumną o wartościach:

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

Myślę, że tabela kalendarza / liczb może mi tutaj pomóc.

Aktualizacja

Postanowiłem przyjrzeć się trzem dostarczonym odpowiedziom na kod, a wyniki wykonania - jako% całej partii - to:

Odpowiedź Roba Farleya : 18%Odpowiedź StingyJacka : 41%Odpowiedź KM : 41%

Niższe jest lepsze

Przyjąłem odpowiedź Roba Farleya, ponieważ była to najszybsza odpowiedź, chociaż rozwiązania tabel liczbowych (używane zarówno przez KM, jak i StingyJacka w odpowiedziach) są moim ulubionym. Rob Farley był o dwie trzecie szybszy.

Aktualizacja 2

Aliviaodpowiedź jest znacznie bardziej zwięzły. Zmieniłem zaakceptowaną odpowiedź.

questionAnswers(21)

yourAnswerToTheQuestion