एक वर्ष की टाइम सीरीज़ बनाएँ
इस अभ्यास का लक्ष्य एक वर्ष के लिए दिनों की एक सीरीज़ बनाना है। इस कार्य के लिए आपको निम्न दो time/date फंक्शन का उपयोग करना होगा:
GETDATE()DATEADD(datepart, number, date)
GETDATE() से आपको मौजूदा समय मिलता है (उदा. 2019-03-14 20:09:14) और DATEADD(month, 1, GETDATE()) से मौजूदा तारीख में एक महीना जोड़कर समय मिलता है (उदा. 2019-04-14 20:09:14).
एक वर्ष के लिए दिनों की सीरीज़ पाने के लिए आपको 365 recursion स्टेप्स चाहिए।
इसलिए, iterations की संख्या बढ़ाने के लिए OPTION (MAXRECURSION n) का उपयोग करें, जहाँ n iterations की संख्या को दर्शाता है।
यह अभ्यास पाठ्यक्रम का हिस्सा है
SQL Server में Hierarchical और Recursive Queries
अभ्यास निर्देश
- मौजूदा समय को
timeके रूप में initialize करें। - CTE को recursively सेलेक्ट करें और anchor तथा recursive member को सही स्टेटमेंट से जोड़ें।
- iterations की संख्या को वर्ष के दिनों माइनस 1 तक सीमित करें।
OPTION (MAXRECURSION n)के साथ अधिकतम iterations की संख्या को वर्ष के दिनों के बराबर बढ़ाएँ।
इंटरैक्टिव व्यावहारिक अभ्यास
इस अभ्यास को इस नमूना कोड को पूरा करके आज़माएँ।
WITH time_series AS (
SELECT
-- Get the current time
___ AS time
UNION ALL
SELECT
DATEADD(day, 1, time)
-- Call the CTE recursively
FROM ___
-- Limit the time series to 1 year minus 1 (365 days -1)
WHERE time < GETDATE() + ___)
SELECT time
FROM time_series
-- Increase the number of iterations (365 days)
OPTION(MAXRECURSION ___)