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ź.