खोज…


पैरामीटर

पैरामीटर विवरण
@तारीख से उत्पन्न तिथि सीमा की समावेशी निचली सीमा।
@तारीख तक उत्पन्न तिथि सीमा की समावेशी ऊपरी सीमा।

टिप्पणियों

अधिकांश विशेषज्ञ मक्खी पर एक सीक्वेंस बनाने के बजाय डेट्स टेबल बनाने की सलाह देते हैं। Http://dba.stackexchange.com/questions/86435/filling-in-date-holes-in-grouped-by-date-sql-data देखें

पुनरावर्ती CTE के साथ जनरेटिंग डेट रेंज

एक पुनरावर्ती CTE का उपयोग करके, आप तिथियों की एक समावेशी श्रेणी उत्पन्न कर सकते हैं:

Declare  @FromDate    Date = '2014-04-21',
         @ToDate      Date = '2014-05-02'

;With DateCte (Date) As
(
    Select  @FromDate Union All
    Select  DateAdd(Day, 1, Date)
    From    DateCte
    Where   Date < @ToDate
)
Select  Date
From    DateCte
Option  (MaxRecursion 0)

डिफ़ॉल्ट MaxRecursion सेटिंग 100 है। इस पद्धति का उपयोग करके 100 से अधिक तिथियां उत्पन्न करने के लिए क्वेरी के Option (MaxRecursion N) खंड की आवश्यकता होगी, जहां N वांछित MaxRecursion सेटिंग है। इसे 0 सेट करने से MaxRecursion सीमा पूरी तरह से MaxRecursion जाएगी।

टैली टेबल के साथ डेट रेंज जनरेट करना

दूसरा तरीका जिससे आप तिथियों की एक श्रृंखला उत्पन्न कर सकते हैं, सीमा के बीच की तिथियों को बनाने के लिए टैली टेबल का उपयोग करके है:

Declare   @FromDate   Date = '2014-04-21',
          @ToDate     Date = '2014-05-02'

;With 
   E1(N) As (Select 1 From (Values (1), (1), (1), (1), (1), (1), (1), (1), (1), (1)) DT(N)),
   E2(N) As (Select 1 From E1 A Cross Join E1 B),
   E4(N) As (Select 1 From E2 A Cross Join E2 B),
   E6(N) As (Select 1 From E4 A Cross Join E2 B),
   Tally(N) As
   (
        Select    Row_Number() Over (Order By (Select Null)) 
        From    E6
   )
Select   DateAdd(Day, N - 1, @FromDate) Date
From     Tally
Where    N <= DateDiff(Day, @FromDate, @ToDate) + 1


Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow