Snowflake DATEADD: व्यावहारिक उदाहरणों के साथ एक संपूर्ण मार्गदर्शिका
वास्तविक-जीवन के उदाहरणों के साथ तिथि संशोधन के लिए Snowflake की DATEADD फ़ंक्शन का उपयोग करना सीखें। समय गणनाओं में महारत हासिल करें, एज केस संभालें, और अपनी SQL क्वेरीज़ के प्रदर्शन को अनुकूलित करें।
Snowflake की DATEADD फ़ंक्शन किसी भी प्रकार के तिथि गणित के लिए अपेक्षाकृत सरल लेकिन शक्तिशाली विधि है, जो डेटा प्रोफेशनलों को किसी तिथि, समय, या टाइमस्टैम्प मान से निर्दिष्ट समयांतराल जोड़ने या घटाने की अनुमति देती है।
DATEADD का उपयोग कैसे करें, यह समझने से डेटा विश्लेषकों और/या इंजीनियरों को सदस्यता अवधियों की गणना करके उपयोगी विश्लेषण करने, भविष्य की किसी भी तिथि के लिए पूर्वानुमान बनाने, और आगे के विश्लेषण के लिए समय-श्रृंखला डेटासेट उत्पन्न करने में मदद मिलेगी।
इस ट्यूटोरियल में, आप फ़ंक्शन का वाक्य-विन्यास, इसे व्यावहारिक रूप से कैसे लागू किया जा सकता है, और Snowflake SQL में अपनी तिथि संशोधन क्षमताओं में DATEADD फ़ंक्शन की समग्र संभावनाओं के बारे में जानेंगे।
हम DATEADD के विवरण में जाने से पहले, आइए अपने उदाहरणों को अधिक व्यावहारिक और हाथ-से-हाथ बनाने के लिए तिथि-समृद्ध डेटा वाला एक सैंपल डेटाबेस बनाते हैं। वास्तविक डेटा के साथ काम करने से जैसे-जैसे हम फ़ंक्शन की क्षमताएँ सीखेंगे, अवधारणाएँ मजबूत होंगी।
1. Snowflake खाता बनाना (नए उपयोगकर्ताओं के लिए)
यदि आप Snowflake में नए हैं, तो आपको एक निःशुल्क ट्रायल खाता बनाना होगा जो 30 दिनों के लिए क्रेडिट प्रदान करता है। प्लेटफ़ॉर्म का व्यापक परिचय पाने के लिए, यह Introduction to Snowflake कोर्स देखें, जो मूल बातें और बुनियादी सिद्धांतों को कवर करता है।
2. अपनी वर्कशीट सेट करना
Snowflake में, SQL क्वेरीज़ “Worksheets” (नोटबुक्स जैसी) में चलाई जाती हैं। नई वर्कशीट बनाने के लिए:
अपने Snowflake खाते में साइन इन करें
मुख्य मेनू से Worksheets पर जाएँ
नई वर्कशीट बनाने के लिए “+” बटन पर क्लिक करें
इसे “DATEADD_Practice” नाम दें
यदि आप Snowflake इंटरफ़ेस में बिल्कुल नए हैं, तो यह Snowflake Tutorial For Beginners प्लेटफ़ॉर्म का एक सहायक वॉकथ्रू प्रदान करता है।
3. डेटाबेस और स्कीमा चुनना
इस ट्यूटोरियल के लिए, हम Snowflake Learning डेटाबेस और पब्लिक स्कीमा का उपयोग करेंगे:
-- Create database and schemaUSEDATABASE SNOWFLAKE_LEARNING_DB;USESCHEMAPUBLIC;संचालित द्वारा
4. सिंथेटिक डेटा और टेबल बनाना
हम विभिन्न परिदृश्यों में ‘DATEADD’ को प्रदर्शित करने के लिए तिथि-संबंधित डेटा वाली तीन टेबल बनाएँगे:
नोट: अपनी वर्कशीट में नीचे दिए कमांड्स को एक साथ चलाने के लिए “Command + Shift + Enter”/”Ctrl + Shift + Enter” का उपयोग करें:
अब हमारे पास तीन टेबल्स वाला एक कार्यात्मक सैंपल डेटाबेस है जिसमें विभिन्न तिथि और टाइमस्टैम्प प्रारूप शामिल हैं। यह डेटासेट इस ट्यूटोरियल के बाकी हिस्से में DATEADD फ़ंक्शन की जाँच करने के लिए आधार के रूप में कार्य करेगा।
Snowflake DATEADD समझना: सिंटैक्स और पैरामीटर्स
Snowflake में तिथि गणितीय क्रियाओं के लिए DATEADD फ़ंक्शन आवश्यक है। यह आपको तिथि, समय, या टाइमस्टैम्प मानों में विशिष्ट समयांतराल जोड़ने या घटाने देता है। आइए इसके सिंटैक्स और पैरामीटर्स से शुरू करते हुए समझें कि यह फ़ंक्शन कैसे काम करता है।
फ़ंक्शन सिंटैक्स और पैरामीटर्स
DATEADD फ़ंक्शन का बुनियादी सिंटैक्स है:
DATEADD(date_part,value, date_or_timestamp_expression)संचालित द्वारा
आइए प्रत्येक पैरामीटर को देखें:
-- Basic DATEADD exampleSELECT
DATEADD(MONTH,3,'2023-01-15')AS three_months_later;संचालित द्वारा
व्याख्या: यह क्वेरी 15 जनवरी, 2023 में 3 महीने जोड़ती है। पैरामीटर्स इस प्रकार काम करते हैं:
date_part (MONTH): वह समय इकाई निर्दिष्ट करता है जिसे हम जोड़/घटा रहे हैं
value (3): जोड़ने (धनात्मक) या घटाने (ऋणात्मक) के लिए इकाइयों की संख्या
date_or_timestamp_expression ('2023-01-15'): वह प्रारंभिक तिथि जिसे संशोधित करना है
आउटपुट:
THREE_MONTHS_LATER
-----------------2023-04-15संचालित द्वारा
समर्थित तिथि भाग
Snowflake, DATEADD के साथ कई तिथि भागों का समर्थन करता है:
-- Examples of different date partsSELECT
DATEADD(YEAR,1,'2023-02-28')AS add_one_year,
DATEADD(QUARTER,2,'2023-01-31')AS add_two_quarters,
DATEADD(MONTH,3,'2023-01-31')AS add_three_months,
DATEADD(WEEK,2,'2023-03-15')AS add_two_weeks,
DATEADD(DAY,10,'2023-03-21')AS add_ten_days,
DATEADD(HOUR,12,'2023-03-10 08:30:00')AS add_twelve_hours,
DATEADD(MINUTE,45,'2023-03-10 08:30:00')AS add_forty_five_minutes,
DATEADD(SECOND,30,'2023-03-10 08:30:00')AS add_thirty_seconds;संचालित द्वारा
अतिरिक्त समर्थित तिथि भागों में MILLISECOND, MICROSECOND, NANOSECOND, और CENTURY शामिल हैं।
ध्यान दें कि लीप वर्ष और माह-अंत तिथियों के लिए, Snowflake उपयुक्त समायोजन करता है। उदाहरण के लिए, 28 फरवरी, 2023 में एक वर्ष जोड़ने पर 29 फरवरी, 2024 (लीप वर्ष) प्राप्त होता है।
घटाने के लिए ऋणात्मक मानों का उपयोग
DATEADD फ़ंक्शन, ऋणात्मक मानों का उपयोग करके समयांतराल घटा भी सकता है:
-- Subtracting time intervals with negative valuesSELECT
DATEADD(MONTH,-3,'2023-03-15')AS three_months_ago,
DATEADD(DAY,-7,CURRENT_DATE())AS one_week_ago,
DATEADD(HOUR,-48,CURRENT_TIMESTAMP())AS two_days_ago_time;संचालित द्वारा
व्याख्या:
पहला अभिव्यक्ति 15 मार्च, 2023 से 3 महीने घटाती है
दूसरी अभिव्यक्ति आज की तिथि से 7 दिन घटाती है
तीसरी अभिव्यक्ति वर्तमान टाइमस्टैम्प से 48 घंटे (2 दिन) घटाती है
आउटपुट:
THREE_MONTHS_AGO ONE_WEEK_AGO TWO_DAYS_AGO_TIME
---------------- ------------ -----------------2025-02-102025-05-032025-05-0807:22:30.183-0700संचालित द्वारा
रिटर्न टाइप का व्यवहार
DATEADD का रिटर्न टाइप इनपुट अभिव्यक्ति के प्रकार पर निर्भर करता है:
यदि इसे DATE पर लागू किया जाता है, तो यह DATE लौटाता है
यदि इसे TIMESTAMP पर लागू किया जाता है, तो यह TIMESTAMP लौटाता है
यदि इसे TIME पर लागू किया जाता है, तो यह TIME लौटाता है
DATEADD आपके इनपुट के मूल डेटा प्रकार को बनाए रखता है। यह व्यवहार समझना महत्वपूर्ण है क्योंकि यह प्रभावित करता है कि आप परिणाम का बाद के ऑपरेशनों में कैसे उपयोग कर सकते हैं।
उदाहरण के लिए, यदि आप किसी DATE मान में घंटे जोड़ते हैं, तो परिणाम अभी भी DATE होगा (अर्थात समय भाग काट दिया जाएगा), जबकि TIMESTAMP में घंटे जोड़ने पर तिथि और समय दोनों घटक बने रहते हैं।
DATEADD फ़ंक्शन के इन मूल पैरामीटर्स और व्यवहारों को समझना उन उन्नत उपयोग मामलों के लिए आधार तैयार करेगा जिन्हें हम आगे के अनुभागों में देखेंगे।
व्यावहारिक DATEADD उदाहरण और उपयोग परिदृश्य
अब जब हम DATEADD का सिंटैक्स और व्यवहार समझ चुके हैं, तो आइए अपने सैंपल डेटा का उपयोग करके व्यावहारिक अनुप्रयोगों का पता लगाएँ। इस अनुभाग में, हम दिखाएँगे कि DATEADD वास्तविक व्यावसायिक समस्याओं को कैसे हल कर सकता है और डेटा विश्लेषण क्षमताओं को कैसे बढ़ा सकता है।
सदस्यता नवीनीकरण तिथियाँ गणना करना
एक आम व्यावसायिक आवश्यकता बिलिंग चक्र के आधार पर यह निर्धारित करना है कि सदस्यताएँ कब नवीनीकृत होंगी:
व्याख्या: यह क्वेरी प्रत्येक सदस्यता के लिए उसके बिलिंग चक्र के आधार पर पहली नवीनीकरण तिथि की गणना करती है। हम DATEADD का उपयोग अलग-अलग तिथि भागों (MONTH या YEAR) और मानों (1, 3, या 1) के साथ करते हैं, जो बिलिंग चक्र पर निर्भर हैं।
आउटपुट:
ध्यान दें कि Snowflake 28 फरवरी से 28 फरवरी (लीप वर्ष) के संक्रमण को सही ढंग से संभालता है।
डिलीवरी विंडो का पूर्वानुमान
आइए ऑर्डर के लिए अनुमानित डिलीवरी विंडो की गणना करने के लिए DATEADD का उपयोग करें:
-- Calculate delivery windows based on order timestampsSELECT
order_id,
customer_id,
order_timestamp,
delivery_estimate,
DATEADD(HOUR,-12, delivery_estimate)AS delivery_window_start,
delivery_estimate AS delivery_window_end,
DATEDIFF('HOUR', order_timestamp, delivery_estimate)AS estimated_hours_to_delivery
FROM orders
ORDERBY order_id;संचालित द्वारा
व्याख्या: यह क्वेरी:
अनुमानित डिलीवरी समय से 12 घंटे घटाकर 12-घंटे की डिलीवरी विंडो बनाती है
डिलीवरी विंडो की शुरुआत और समाप्ति, दोनों दिखाती है
अनुमानित कुल डिलीवरी समय (घंटों में) की गणना करती है
आउटपुट:
तिथि डाइमेंशन टेबल बनाना
टाइम-सीरीज़ विश्लेषण के लिए अक्सर तिथि डाइमेंशन टेबल की आवश्यकता होती है। आइए इसे DATEADD का उपयोग करके बनाएँ:
-- Generate a date dimension table for analysisWITH date_dimension AS(SELECT
DATEADD(DAY, seq4(),'2023-01-01')AS calendar_date
FROMTABLE(GENERATOR(ROWCOUNT=>365)))SELECT
calendar_date,YEAR(calendar_date)ASyear,MONTH(calendar_date)ASmonth,
MONTHNAME(calendar_date)AS month_name,DAY(calendar_date)ASday,
DAYOFWEEK(calendar_date)AS day_of_week,
DAYNAME(calendar_date)AS day_name,CASEWHEN DAYOFWEEK(calendar_date)IN(0,6)THENTRUEELSEFALSEENDAS is_weekend,
QUARTER(calendar_date)AS quarter
FROM date_dimension
WHERE calendar_date <='2023-03-31'ORDERBY calendar_date
LIMIT10;संचालित द्वारा
व्याख्या: यह क्वेरी:
DATEADD को सीक्वेंस जनरेटर के साथ उपयोग करके 2023 के लिए तिथियों की श्रृंखला बनाती है
प्रत्येक कैलेंडर तिथि के लिए उपयोगी तिथि विशेषताएँ निकालती है
Q1 2023 तक सीमित करती है और संक्षिप्तता के लिए पहली 10 तिथियाँ दिखाती है
आउटपुट:
तिथि डाइमेंशन टेबल्स, बार-बार क्वेरी में गणना करने के बजाय तिथि विशेषताएँ पहले से गणना करके, विश्लेषण के प्रदर्शन में उल्लेखनीय सुधार करती हैं। वे किसी संगठन में तिथि-तर्क का मानकीकरण करती हैं, जिससे तिमाहियों, सप्ताहांत और अन्य समय अवधियों की परिभाषाएँ सुसंगत रहती हैं।
यह तरीका त्रुटियों को कम करता है और जटिल समय-आधारित विश्लेषण को व्यावसायिक उपयोगकर्ताओं के लिए अधिक सुलभ बनाता है। तिथि डाइमेंशन, वर्ष, तिमाही, माह और दिन जैसी विभिन्न समय पदानुक्रमों द्वारा कुशल फ़िल्टरिंग और ग्रुपिंग को भी सक्षम करती हैं।
सीक्वेंस जनरेशन के साथ DATEADD इन डाइमेंशन टेबल्स को बिना मैनुअल डेटा एंट्री के भरने का सरल तरीका प्रदान करता है।
इस तकनीक का विस्तार करके बहु-वर्षीय कैलेंडर या विशेष समय डाइमेंशन, जैसे वित्तीय कैलेंडर या व्यावसायिक दिवस गणनाएँ, बनाई जा सकती हैं। अतिरिक्त कॉलम में छुट्टी फ़्लैग्स, सप्ताह संख्याएँ, या कस्टम व्यावसायिक अवधि निर्धारण शामिल हो सकते हैं जो सटीक रिपोर्टिंग के लिए महत्वपूर्ण हैं।
एक बार बन जाने पर, यह डाइमेंशन टेबल फैक्ट टेबल्स के साथ जॉइन होकर डैशबोर्ड और रिपोर्ट में शक्तिशाली समय-बुद्धिमत्ता क्षमताएँ सक्षम कर सकती है।
निर्धारित ईवेंट्स का विश्लेषण
आइए DATEADD का उपयोग आगामी निर्धारित अनुरक्षण ईवेंट्स का विश्लेषण करने के लिए करें:
-- Find upcoming events and calculate preparation timeSELECT
event_id,
event_name,
event_timestamp,
duration_minutes,
DATEADD(DAY,-3, event_timestamp)AS preparation_start,
DATEADD(MINUTE, duration_minutes, event_timestamp)AS event_end,
DATEDIFF('MINUTE',CURRENT_TIMESTAMP(), event_timestamp)AS minutes_until_event
FROM events
WHERE event_timestamp >CURRENT_TIMESTAMP()ORDERBY event_timestamp;संचालित द्वारा
व्याख्या: यह क्वेरी:
आगामी ईवेंट्स (भविष्य में होने वाले) खोजती है
तैयारी कब शुरू होनी चाहिए (ईवेंट से 3 दिन पहले) की गणना करती है
अवधि के आधार पर ईवेंट कब समाप्त होगा, यह गणना करती है
ईवेंट शुरू होने तक कितने मिनट शेष हैं, यह दिखाती है
चूँकि हमारा सैंपल डेटा 2023 का है, यह क्वेरी आमतौर पर 2025 में कोई परिणाम नहीं दिखाएगी, लेकिन वैचारिक रूप से निर्धारित ईवेंट्स का विश्लेषण कैसे करें, यह दर्शाती है।
बिलिंग अवधियों की गणना
सदस्यता-आधारित व्यवसायों के लिए, सटीक बिलिंग अवधियों की गणना आवश्यक है:
-- Generate next 6 billing periods for monthly subscriptionsWITH billing_periods AS(SELECT
subscription_id,
customer_id,
plan_name,
start_date,
seq AS billing_period_number,
DATEADD(MONTH, seq, start_date)AS billing_period_start,
DATEADD(DAY,-1, DATEADD(MONTH, seq +1, start_date))AS billing_period_end
FROM subscriptions
CROSSJOIN(SELECT seq4()AS seq FROMTABLE(GENERATOR(ROWCOUNT=>6)))WHERE billing_cycle ='Monthly')SELECT
subscription_id,
customer_id,
plan_name,
billing_period_number,
billing_period_start,
billing_period_end,
DATEDIFF('DAY', billing_period_start, billing_period_end)+1AS days_in_period
FROM billing_periods
ORDERBY subscription_id, billing_period_number;संचालित द्वारा
व्याख्या: यह क्वेरी:
CROSS JOIN और सीक्वेंस जनरेटर (seq4()) के साथ मासिक सदस्यताओं के अगले 6 बिलिंग अवधियों का जनरेशन करती है
अवधि संख्या के आधार पर महीनों को जोड़कर DATEADD(MONTH, seq, start_date) से शुरूआती तिथि की गणना करती है
अगली अवधि शुरू होने से एक दिन पहले को अंत तिथि के रूप में DATEADD(DAY, -1, DATEADD(MONTH, seq + 1, start_date)) से गणना करती है यह 28/29/30/31 दिनों जैसे भिन्न माह-लंबाइयों को सही ढंग से संभालता है
प्रत्येक बिलिंग अवधि में दिनों की संख्या DATEDIFF('DAY', billing_period_start, billing_period_end) + 1 से गिनती है +1 आवश्यक है क्योंकि DATEDIFF तिथियों के बीच का अंतर लौटाता है, जिसमें अंत तिथि शामिल नहीं होती
WHERE क्लॉज़ के साथ केवल मासिक सदस्यताओं को शामिल करती है
परिणामों को तार्किक प्रस्तुति हेतु subscription_id और बिलिंग अवधि के अनुसार क्रमबद्ध करती है
आउटपुट:
ध्यान दें कि DATEADD अलग-अलग माह-लंबाइयों को सही तरीके से संभालता है, जिससे बिलिंग अवधि की गणनाएँ सटीक रहती हैं।
ये उदाहरण दिखाते हैं कि DATEADD को तिथि संशोधन से जुड़ी आम व्यावसायिक समस्याओं को हल करने में कैसे लागू किया जा सकता है। DATEADD को अन्य SQL फ़ंक्शंस के साथ मिलाकर, आप Snowflake में समय-आधारित विश्लेषण और डेटा प्रोसेसिंग के लिए शक्तिशाली क्वेरीज़ बना सकते हैं।
DATEADD की तुलना संबंधित Snowflake फ़ंक्शंस से
अब आइए देखें कि DATEADD फ़ंक्शन Snowflake के कुछ अन्य फ़ंक्शंस की तुलना में कैसा है।
DATEADD बनाम DATEDIFF और DATE_TRUNC
जहाँ DATEADD किसी तिथि में विशिष्ट समयांतराल जोड़ता या घटाता है, वहीं DATEDIFF दो तिथियों के बीच निर्दिष्ट इकाई में अंतर की गणना करता है। DATEDIFF पूर्ण इकाइयों की संख्या के रूप में एक पूर्णांक लौटाता है, जिससे यह सदस्यता अवधि या ऑर्डर प्लेसमेंट के बाद के दिनों जैसी अवधियों की गणना के लिए आदर्श बनता है।
DATE_TRUNC इसके विपरीत, किसी दिनांक/समय मान से छोटे तिथि भागों को उनके डिफ़ॉल्ट मानों पर सेट कर परिशुद्धता हटा देता है, प्रभावी रूप से नीचे की ओर किसी निर्दिष्ट इकाई तक राउंड कर देता है।
-- Comparing the three functionsSELECT
DATEADD(MONTH,3,'2023-01-15'::DATE)AS added_three_months,
DATEDIFF(DAY,'2023-01-15'::DATE,'2023-04-15'::DATE)AS days_between,
DATE_TRUNC(MONTH,'2023-01-15'::DATE)AS truncated_to_month;संचालित द्वारा
आउटपुट:
किस फ़ंक्शन का कब उपयोग करें (निर्णय मानदंड)
जब आपको विशिष्ट समयांतराल के अनुसार तिथियों को आगे या पीछे शिफ्ट करना हो—जैसे भविष्य की नवीनीकरण तिथियाँ, डिलीवरी विंडो, या भुगतान अनुसूचियाँ निकालना—तो DATEADD का उपयोग करें।
दो तिथियों के बीच बीता हुआ समय मापने—जैसे आयु, अवधि, या रिपोर्टिंग के लिए समय-आधारित मीट्रिक्स—के लिए DATEDIFF चुनें।
DATE_TRUNC तब सबसे उपयुक्त है जब आपको समय अवधियों (दैनिक, मासिक, तिमाही) के आधार पर डेटा को समूहित करना हो, टाइमस्टैम्प्स को समान परिशुद्धता स्तर पर मानकीकृत करना हो, या विश्लेषण के लिए समय-आधारित पदानुक्रम बनाने हों।
-- Function usage by scenarioSELECT-- Scenario: Calculate next month's billing date
DATEADD(MONTH,1, start_date)AS next_billing_date,-- Scenario: Find how many days the subscription has been active
DATEDIFF(DAY, start_date,CURRENT_DATE())AS subscription_age_days,-- Scenario: Group by month for analysis
DATE_TRUNC(MONTH, start_date)AS billing_month
FROM subscriptions
LIMIT3;संचालित द्वारा
एज केस संभालना और ट्रबलशूटिंग
यदि आपको फ़ंक्शन का उपयोग करते समय समस्याएँ आ रही हैं, तो यहाँ कुछ सुझाव हैं जो आपको परेशानी से बाहर निकलने में मदद कर सकते हैं।
माह-अंत और लीप वर्ष समायोजन
Snowflake DATEADD का उपयोग करते समय माह-अंत तिथियों को बुद्धिमानी से संभालता है। माह-अंत तिथि में महीने जोड़ते समय, Snowflake परिणामी महीने के अंतिम दिन को लौटाता है, चाहे दिनों की संख्या कुछ भी हो। यह व्यवहार विभिन्न लंबाइयों वाले महीनों के बावजूद "माह-अंत" की अवधारणा को संरक्षित करता है।
-- Month-end handling examplesSELECT
DATEADD(MONTH,1,'2023-01-31')AS jan_to_feb,-- January 31 + 1 month = February 28
DATEADD(MONTH,1,'2023-02-28')AS feb_to_mar,-- February 28 + 1 month = March 31
DATEADD(MONTH,1,'2024-01-31')AS jan_to_feb_leap,-- January 31 + 1 month in leap year = February 29
DATEADD(YEAR,1,'2023-02-28')AS normal_to_leap;-- February 28, 2023 + 1 year = February 29, 2024संचालित द्वारा
टाइम ज़ोन और डेलाइट सेविंग पर विचार
जब ऐसे टाइमस्टैम्प डेटा के साथ काम करते हैं जिनमें टाइम ज़ोन शामिल है (TIMESTAMP_TZ), DATEADD डेलाइट सेविंग टाइम संक्रमणों को स्वतः ध्यान में रखता है। यह सुनिश्चित करता है कि समय बदलावों के बीच भी गणनाएँ सटीक रहें, लेकिन कभी-कभी DST सीमाओं के आसपास विशिष्ट अंतराल जोड़ते समय अप्रत्याशित परिणाम दे सकता है।
-- Time zone handling with DST transitionSELECT
event_timestamp,
DATEADD(HOUR,24, event_timestamp)AS add_24h,
DATEADD(DAY,1, event_timestamp)AS add_1d
FROM(SELECT CONVERT_TIMEZONE('America/Los_Angeles','2023-03-12 01:30:00')::TIMESTAMP_TZ AS event_timestamp
);-- During spring forward DST transitionसंचालित द्वारा
DST संक्रमणों के आसपास टाइमस्टैम्प्स के साथ काम करते समय, 24 घंटे जोड़ना 1 दिन जोड़ने के बराबर नहीं हो सकता। “add_1d" तरीका आमतौर पर व्यावसायिक अनुप्रयोगों में अधिक सहज परिणाम देता है।
आम त्रुटियाँ और उनके समाधान
DATEADD त्रुटियाँ सामान्यतः टाइप मिसमैच या अमान्य इनपुट से उत्पन्न होती हैं। यहाँ आम समस्याएँ और समाधान हैं:
-- Common error: Invalid date part-- Error: "Invalid date part 'DATE'"SELECT DATEADD(DATE,1,'2023-01-15');-- Incorrect: 'DATE' is not a valid date partSELECT DATEADD(DAY,1,'2023-01-15');-- Correct: use 'DAY' instead-- Common error: Type mismatch-- Error: "Numeric value 'abc' is not recognized"SELECT DATEADD(DAY,'abc','2023-01-15');-- Incorrect: second parameter must be numericSELECT DATEADD(DAY,10,'2023-01-15');-- Correct: use numeric value-- Common error: Invalid date format-- Error: "Date 'January 15, 2023' is not recognized"SELECT DATEADD(DAY,1,'January 15, 2023');-- Incorrect: unrecognized date formatSELECT DATEADD(DAY,1,'2023-01-15');-- Correct: use YYYY-MM-DD formatसंचालित द्वारा
प्रदर्शन अनुकूलन सुझाव
बड़े पैमाने के ऑपरेशनों में DATEADD का सर्वोत्तम प्रदर्शन पाने के लिए:
संभव हो तो फ़िल्टरिंग चरणों के बजाय ट्रांसफॉर्मेशन चरणों में DATEADD लागू करें।
जब किसी गणना का कई बार उपयोग हो रहा हो, तो सामान्य तिथि गणनाओं को अस्थायी टेबल्स या CTEs में पूर्व-गणना करें।
रेंज-आधारित गणनाओं से पहले इंडेक्स उपयोग सुधारने हेतु DATE_TRUNC पर विचार करें।
तिथि रेंज बनाने जैसे बैच ऑपरेशनों के लिए, रिकर्सिव CTEs की बजाय सीक्वेंस जनरेटर्स का उपयोग करें (जैसा कि तिथि डाइमेंशन उदाहरण में दिखाया गया है)।
-- Inefficient pattern (calculating same value repeatedly)SELECT*FROM large_table
WHERE DATEADD(MONTH,1, event_date)<CURRENT_DATE();-- More efficient approach (calculate once)WITH calc_dates AS(SELECT*, DATEADD(MONTH,1, event_date)AS next_month_date
FROM large_table
)SELECT*FROM calc_dates
WHERE next_month_date <CURRENT_DATE();संचालित द्वारा
इन एज केसों और अनुकूलन तकनीकों को समझने से आप Snowflake में अधिक मजबूत तिथि संशोधन तर्क लिख पाएँगे, सामान्य गलतियों से बचते हुए प्रदर्शन को अधिकतम कर पाएँगे।
निष्कर्ष
Snowflake की DATEADD फ़ंक्शन तिथि संशोधन के लिए एक अनिवार्य टूल है, जो डेटा प्रोफेशनलों को विभिन्न तिथि भागों में समय गणित करने देती है। यह माह-अंत तिथियों, लीप वर्षों, टाइम ज़ोन और डेलाइट सेविंग टाइम संक्रमणों को पूर्वानुमेय व्यवहार के साथ संभालती है। हमने देखा कि DATEADD को सदस्यता प्रबंधन, डिलीवरी ट्रैकिंग, तिथि डाइमेंशन निर्माण और बिलिंग गणनाओं में कैसे लागू किया जा सकता है। जब DATEDIFF और DATE_TRUNC के साथ इस्तेमाल किया जाए, तो यह Snowflake में समय-आधारित एनालिटिक्स का मुख्य घटक बन जाती है।
Snowflake DATEADD फ़ंक्शन का उपयोग किस लिए किया जाता है?⌄
Snowflake की DATEADD फ़ंक्शन का उपयोग तिथि गणितीय क्रियाओं के लिए किया जाता है—तिथि, समय, या टाइमस्टैम्प मानों में विशिष्ट समयांतराल (जैसे दिन, महीने, या वर्ष) जोड़ने या घटाने हेतु। यह सामान्यतः भविष्य की तिथियाँ निकालने, सदस्यता नवीनीकरण की गणना, और टाइम-सीरीज़ विश्लेषण के लिए उपयोग होती है।
DATEADD माह-अंत तिथियों और लीप वर्षों को कैसे संभालती है?⌄
DATEADD माह-अंत तिथियों को "माह-अंत" की अवधारणा को संरक्षित करके बुद्धिमानी से संभालती है। माह-अंत तिथि में महीने जोड़ते समय, यह परिणामी महीने के अंतिम दिन को लौटाती है। लीप वर्षों के लिए, यह तिथियों को स्वतः समायोजित करती है (उदाहरण: 28 फ़रवरी, 2023 में एक वर्ष जोड़ने पर 29 फ़रवरी, 2024 प्राप्त होता है)।
DATEADD में समर्थित तिथि भाग कौन-कौन से हैं?⌄
DATEADD कई तिथि भागों का समर्थन करती है, जिनमें YEAR, QUARTER, MONTH, WEEK, DAY, HOUR, MINUTE, SECOND, MILLISECOND, MICROSECOND, NANOSECOND, और CENTURY शामिल हैं। प्रत्येक तिथि भाग आपको किसी तिथि मान से उसी विशिष्ट समय इकाई को जोड़ने या घटाने की अनुमति देता है।
क्या DATEADD अलग-अलग टाइमस्टैम्प प्रकारों के साथ उपयोग की जा सकती है?⌄
हाँ, DATEADD Snowflake के सभी टाइमस्टैम्प प्रकारों के साथ काम करती है: TIMESTAMP_NTZ (टाइम ज़ोन नहीं), TIMESTAMP_TZ (टाइम ज़ोन सहित), और TIMESTAMP_LTZ (लोकल टाइम ज़ोन)। यह टाइमस्टैम्प प्रकार को संरक्षित रखती है और टाइम ज़ोन रूपांतरणों को स्वतः संभालती है।
DATEADD, DATEDIFF और DATE_TRUNC से कैसे भिन्न है?⌄
जहाँ DATEADD समयांतराल जोड़/घटा कर तिथियों को संशोधित करती है, वहीं DATEDIFF दो तिथियों के बीच निर्दिष्ट इकाई में अंतर की गणना करता है, और DATE_TRUNC किसी दिनांक/समय मान से परिशुद्धता हटाकर उसे निर्दिष्ट इकाई तक नीचे की ओर राउंड करता है। ये तिथि संशोधन में अलग लेकिन परस्पर पूरक उद्देश्यों की पूर्ति करते हैं।
मैं 2 से अधिक वर्षों के अनुभव वाला डेटा साइंस कंटेंट क्रिएटर हूँ और Medium पर सबसे बड़े फॉलोइंग्स में से एक रखता हूँ। मुझे एआई और एमएल पर विस्तार से लेख लिखना पसंद है, जिसमें हल्का-सा व्यंग्यात्मक अंदाज रहता है—क्योंकि कुछ तो करना पड़ता है ताकि वे कम उबाऊ लगें। मैंने 130 से अधिक लेख और एक DataCamp कोर्स तैयार किया है, और एक और बन रहा है। मेरा कंटेंट 50 लाख से अधिक लोगों ने देखा है, जिनमें से 20 हज़ार लोग Medium और LinkedIn पर फॉलोअर्स बन गए।
Snowflake के साथ व्यावहारिक अनुभव प्राप्त करें! डेटा इंजीनियरों, विश्लेषकों और BI पेशेवरों के लिए इस इंटरैक्टिव परिचय में डेटा को क्वेरी करना, मॉडल करना और प्रबंधित करना सीखें।
Snowflake में डिज़ाइन, क्वेरी और निर्माण करना सीखें - ट्रांसफ़ॉर्मेशन और मॉडलिंग के लिए Snowflake SQL में महारत हासिल करके नौकरी के लिए तैयार Data Engineer बनें।
Snowflake की
DATEADDफ़ंक्शन किसी भी प्रकार के तिथि गणित के लिए अपेक्षाकृत सरल लेकिन शक्तिशाली विधि है, जो डेटा प्रोफेशनलों को किसी तिथि, समय, या टाइमस्टैम्प मान से निर्दिष्ट समयांतराल जोड़ने या घटाने की अनुमति देती है।DATEADDका उपयोग कैसे करें, यह समझने से डेटा विश्लेषकों और/या इंजीनियरों को सदस्यता अवधियों की गणना करके उपयोगी विश्लेषण करने, भविष्य की किसी भी तिथि के लिए पूर्वानुमान बनाने, और आगे के विश्लेषण के लिए समय-श्रृंखला डेटासेट उत्पन्न करने में मदद मिलेगी।इस ट्यूटोरियल में, आप फ़ंक्शन का वाक्य-विन्यास, इसे व्यावहारिक रूप से कैसे लागू किया जा सकता है, और Snowflake SQL में अपनी तिथि संशोधन क्षमताओं में
DATEADDफ़ंक्शन की समग्र संभावनाओं के बारे में जानेंगे।यदि आप Snowflake के साथ अभी शुरुआत कर रहे हैं, तो हमारी Snowflake Foundations कौशल ट्रैक अवश्य देखें।
व्यवहार के लिए एक सैंपल डेटाबेस सेट करना
हम
DATEADDके विवरण में जाने से पहले, आइए अपने उदाहरणों को अधिक व्यावहारिक और हाथ-से-हाथ बनाने के लिए तिथि-समृद्ध डेटा वाला एक सैंपल डेटाबेस बनाते हैं। वास्तविक डेटा के साथ काम करने से जैसे-जैसे हम फ़ंक्शन की क्षमताएँ सीखेंगे, अवधारणाएँ मजबूत होंगी।1. Snowflake खाता बनाना (नए उपयोगकर्ताओं के लिए)
यदि आप Snowflake में नए हैं, तो आपको एक निःशुल्क ट्रायल खाता बनाना होगा जो 30 दिनों के लिए क्रेडिट प्रदान करता है। प्लेटफ़ॉर्म का व्यापक परिचय पाने के लिए, यह Introduction to Snowflake कोर्स देखें, जो मूल बातें और बुनियादी सिद्धांतों को कवर करता है।
2. अपनी वर्कशीट सेट करना
Snowflake में, SQL क्वेरीज़ “Worksheets” (नोटबुक्स जैसी) में चलाई जाती हैं। नई वर्कशीट बनाने के लिए:
यदि आप Snowflake इंटरफ़ेस में बिल्कुल नए हैं, तो यह Snowflake Tutorial For Beginners प्लेटफ़ॉर्म का एक सहायक वॉकथ्रू प्रदान करता है।
3. डेटाबेस और स्कीमा चुनना
इस ट्यूटोरियल के लिए, हम Snowflake Learning डेटाबेस और पब्लिक स्कीमा का उपयोग करेंगे:
4. सिंथेटिक डेटा और टेबल बनाना
हम विभिन्न परिदृश्यों में ‘DATEADD’ को प्रदर्शित करने के लिए तिथि-संबंधित डेटा वाली तीन टेबल बनाएँगे:
नोट: अपनी वर्कशीट में नीचे दिए कमांड्स को एक साथ चलाने के लिए “Command + Shift + Enter”/”Ctrl + Shift + Enter” का उपयोग करें:
टेबल बनाने, अलग-अलग टेबल प्रकारों और सर्वोत्तम प्रथाओं के बारे में अधिक विवरण के लिए, Creating Tables in Snowflake देखें।
संकेत: सफलतापूर्वक निष्पादन के बाद आपको अपनी वर्कशीट से सभी मौजूदा क्वेरीज़ हटा देनी चाहिए।
5. सैंपल डेटा से टेबल्स भरना
आइए विविध तिथि और समय मानों के साथ सैंपल डेटा डालें:
6. सैंपल डेटा का प्रमाणीकरण
आइए कुछ बुनियादी क्वेरीज़ चलाएँ ताकि पुष्टि हो सके कि हमारा डेटा सही ढंग से लोड हुआ है:
अब हमारे पास तीन टेबल्स वाला एक कार्यात्मक सैंपल डेटाबेस है जिसमें विभिन्न तिथि और टाइमस्टैम्प प्रारूप शामिल हैं। यह डेटासेट इस ट्यूटोरियल के बाकी हिस्से में
DATEADDफ़ंक्शन की जाँच करने के लिए आधार के रूप में कार्य करेगा।Snowflake DATEADD समझना: सिंटैक्स और पैरामीटर्स
Snowflake में तिथि गणितीय क्रियाओं के लिए
DATEADDफ़ंक्शन आवश्यक है। यह आपको तिथि, समय, या टाइमस्टैम्प मानों में विशिष्ट समयांतराल जोड़ने या घटाने देता है। आइए इसके सिंटैक्स और पैरामीटर्स से शुरू करते हुए समझें कि यह फ़ंक्शन कैसे काम करता है।फ़ंक्शन सिंटैक्स और पैरामीटर्स
DATEADDफ़ंक्शन का बुनियादी सिंटैक्स है:आइए प्रत्येक पैरामीटर को देखें:
व्याख्या: यह क्वेरी 15 जनवरी, 2023 में 3 महीने जोड़ती है। पैरामीटर्स इस प्रकार काम करते हैं:
date_part (MONTH): वह समय इकाई निर्दिष्ट करता है जिसे हम जोड़/घटा रहे हैंvalue (3): जोड़ने (धनात्मक) या घटाने (ऋणात्मक) के लिए इकाइयों की संख्याdate_or_timestamp_expression('2023-01-15'): वह प्रारंभिक तिथि जिसे संशोधित करना हैआउटपुट:
समर्थित तिथि भाग
Snowflake,
DATEADDके साथ कई तिथि भागों का समर्थन करता है:अतिरिक्त समर्थित तिथि भागों में
MILLISECOND,MICROSECOND,NANOSECOND, औरCENTURYशामिल हैं।ध्यान दें कि लीप वर्ष और माह-अंत तिथियों के लिए, Snowflake उपयुक्त समायोजन करता है। उदाहरण के लिए, 28 फरवरी, 2023 में एक वर्ष जोड़ने पर 29 फरवरी, 2024 (लीप वर्ष) प्राप्त होता है।
घटाने के लिए ऋणात्मक मानों का उपयोग
DATEADDफ़ंक्शन, ऋणात्मक मानों का उपयोग करके समयांतराल घटा भी सकता है:व्याख्या:
आउटपुट:
रिटर्न टाइप का व्यवहार
DATEADDका रिटर्न टाइप इनपुट अभिव्यक्ति के प्रकार पर निर्भर करता है:DATEपर लागू किया जाता है, तो यहDATEलौटाता हैTIMESTAMPपर लागू किया जाता है, तो यहTIMESTAMPलौटाता हैTIMEपर लागू किया जाता है, तो यहTIMEलौटाता हैDATEADDआपके इनपुट के मूल डेटा प्रकार को बनाए रखता है। यह व्यवहार समझना महत्वपूर्ण है क्योंकि यह प्रभावित करता है कि आप परिणाम का बाद के ऑपरेशनों में कैसे उपयोग कर सकते हैं।उदाहरण के लिए, यदि आप किसी DATE मान में घंटे जोड़ते हैं, तो परिणाम अभी भी DATE होगा (अर्थात समय भाग काट दिया जाएगा), जबकि
TIMESTAMPमें घंटे जोड़ने पर तिथि और समय दोनों घटक बने रहते हैं।DATEADDफ़ंक्शन के इन मूल पैरामीटर्स और व्यवहारों को समझना उन उन्नत उपयोग मामलों के लिए आधार तैयार करेगा जिन्हें हम आगे के अनुभागों में देखेंगे।व्यावहारिक DATEADD उदाहरण और उपयोग परिदृश्य
अब जब हम
DATEADDका सिंटैक्स और व्यवहार समझ चुके हैं, तो आइए अपने सैंपल डेटा का उपयोग करके व्यावहारिक अनुप्रयोगों का पता लगाएँ। इस अनुभाग में, हम दिखाएँगे किDATEADDवास्तविक व्यावसायिक समस्याओं को कैसे हल कर सकता है और डेटा विश्लेषण क्षमताओं को कैसे बढ़ा सकता है।सदस्यता नवीनीकरण तिथियाँ गणना करना
एक आम व्यावसायिक आवश्यकता बिलिंग चक्र के आधार पर यह निर्धारित करना है कि सदस्यताएँ कब नवीनीकृत होंगी:
व्याख्या: यह क्वेरी प्रत्येक सदस्यता के लिए उसके बिलिंग चक्र के आधार पर पहली नवीनीकरण तिथि की गणना करती है। हम
DATEADDका उपयोग अलग-अलग तिथि भागों (MONTHयाYEAR) और मानों (1, 3, या 1) के साथ करते हैं, जो बिलिंग चक्र पर निर्भर हैं।आउटपुट:
ध्यान दें कि Snowflake 28 फरवरी से 28 फरवरी (लीप वर्ष) के संक्रमण को सही ढंग से संभालता है।
डिलीवरी विंडो का पूर्वानुमान
आइए ऑर्डर के लिए अनुमानित डिलीवरी विंडो की गणना करने के लिए DATEADD का उपयोग करें:
व्याख्या: यह क्वेरी:
आउटपुट:
तिथि डाइमेंशन टेबल बनाना
टाइम-सीरीज़ विश्लेषण के लिए अक्सर तिथि डाइमेंशन टेबल की आवश्यकता होती है। आइए इसे DATEADD का उपयोग करके बनाएँ:
व्याख्या: यह क्वेरी:
DATEADDको सीक्वेंस जनरेटर के साथ उपयोग करके 2023 के लिए तिथियों की श्रृंखला बनाती हैआउटपुट:
तिथि डाइमेंशन टेबल्स, बार-बार क्वेरी में गणना करने के बजाय तिथि विशेषताएँ पहले से गणना करके, विश्लेषण के प्रदर्शन में उल्लेखनीय सुधार करती हैं। वे किसी संगठन में तिथि-तर्क का मानकीकरण करती हैं, जिससे तिमाहियों, सप्ताहांत और अन्य समय अवधियों की परिभाषाएँ सुसंगत रहती हैं।
यह तरीका त्रुटियों को कम करता है और जटिल समय-आधारित विश्लेषण को व्यावसायिक उपयोगकर्ताओं के लिए अधिक सुलभ बनाता है। तिथि डाइमेंशन, वर्ष, तिमाही, माह और दिन जैसी विभिन्न समय पदानुक्रमों द्वारा कुशल फ़िल्टरिंग और ग्रुपिंग को भी सक्षम करती हैं।
सीक्वेंस जनरेशन के साथ
DATEADDइन डाइमेंशन टेबल्स को बिना मैनुअल डेटा एंट्री के भरने का सरल तरीका प्रदान करता है।इस तकनीक का विस्तार करके बहु-वर्षीय कैलेंडर या विशेष समय डाइमेंशन, जैसे वित्तीय कैलेंडर या व्यावसायिक दिवस गणनाएँ, बनाई जा सकती हैं। अतिरिक्त कॉलम में छुट्टी फ़्लैग्स, सप्ताह संख्याएँ, या कस्टम व्यावसायिक अवधि निर्धारण शामिल हो सकते हैं जो सटीक रिपोर्टिंग के लिए महत्वपूर्ण हैं।
एक बार बन जाने पर, यह डाइमेंशन टेबल फैक्ट टेबल्स के साथ जॉइन होकर डैशबोर्ड और रिपोर्ट में शक्तिशाली समय-बुद्धिमत्ता क्षमताएँ सक्षम कर सकती है।
निर्धारित ईवेंट्स का विश्लेषण
आइए
DATEADDका उपयोग आगामी निर्धारित अनुरक्षण ईवेंट्स का विश्लेषण करने के लिए करें:व्याख्या: यह क्वेरी:
चूँकि हमारा सैंपल डेटा 2023 का है, यह क्वेरी आमतौर पर 2025 में कोई परिणाम नहीं दिखाएगी, लेकिन वैचारिक रूप से निर्धारित ईवेंट्स का विश्लेषण कैसे करें, यह दर्शाती है।
बिलिंग अवधियों की गणना
सदस्यता-आधारित व्यवसायों के लिए, सटीक बिलिंग अवधियों की गणना आवश्यक है:
व्याख्या: यह क्वेरी:
seq4()) के साथ मासिक सदस्यताओं के अगले 6 बिलिंग अवधियों का जनरेशन करती हैDATEADD(MONTH, seq, start_date)से शुरूआती तिथि की गणना करती हैDATEADD(DAY, -1, DATEADD(MONTH, seq + 1, start_date))से गणना करती है यह 28/29/30/31 दिनों जैसे भिन्न माह-लंबाइयों को सही ढंग से संभालता हैDATEDIFF('DAY', billing_period_start, billing_period_end) + 1से गिनती है +1 आवश्यक है क्योंकि DATEDIFF तिथियों के बीच का अंतर लौटाता है, जिसमें अंत तिथि शामिल नहीं होतीsubscription_idऔर बिलिंग अवधि के अनुसार क्रमबद्ध करती हैआउटपुट:
ध्यान दें कि
DATEADDअलग-अलग माह-लंबाइयों को सही तरीके से संभालता है, जिससे बिलिंग अवधि की गणनाएँ सटीक रहती हैं।ये उदाहरण दिखाते हैं कि
DATEADDको तिथि संशोधन से जुड़ी आम व्यावसायिक समस्याओं को हल करने में कैसे लागू किया जा सकता है।DATEADDको अन्य SQL फ़ंक्शंस के साथ मिलाकर, आप Snowflake में समय-आधारित विश्लेषण और डेटा प्रोसेसिंग के लिए शक्तिशाली क्वेरीज़ बना सकते हैं।DATEADD की तुलना संबंधित Snowflake फ़ंक्शंस से
अब आइए देखें कि
DATEADDफ़ंक्शन Snowflake के कुछ अन्य फ़ंक्शंस की तुलना में कैसा है।DATEADD बनाम DATEDIFF और DATE_TRUNC
जहाँ
DATEADDकिसी तिथि में विशिष्ट समयांतराल जोड़ता या घटाता है, वहींDATEDIFFदो तिथियों के बीच निर्दिष्ट इकाई में अंतर की गणना करता है।DATEDIFFपूर्ण इकाइयों की संख्या के रूप में एक पूर्णांक लौटाता है, जिससे यह सदस्यता अवधि या ऑर्डर प्लेसमेंट के बाद के दिनों जैसी अवधियों की गणना के लिए आदर्श बनता है।DATE_TRUNCइसके विपरीत, किसी दिनांक/समय मान से छोटे तिथि भागों को उनके डिफ़ॉल्ट मानों पर सेट कर परिशुद्धता हटा देता है, प्रभावी रूप से नीचे की ओर किसी निर्दिष्ट इकाई तक राउंड कर देता है।आउटपुट:
किस फ़ंक्शन का कब उपयोग करें (निर्णय मानदंड)
जब आपको विशिष्ट समयांतराल के अनुसार तिथियों को आगे या पीछे शिफ्ट करना हो—जैसे भविष्य की नवीनीकरण तिथियाँ, डिलीवरी विंडो, या भुगतान अनुसूचियाँ निकालना—तो
DATEADDका उपयोग करें।दो तिथियों के बीच बीता हुआ समय मापने—जैसे आयु, अवधि, या रिपोर्टिंग के लिए समय-आधारित मीट्रिक्स—के लिए
DATEDIFFचुनें।DATE_TRUNCतब सबसे उपयुक्त है जब आपको समय अवधियों (दैनिक, मासिक, तिमाही) के आधार पर डेटा को समूहित करना हो, टाइमस्टैम्प्स को समान परिशुद्धता स्तर पर मानकीकृत करना हो, या विश्लेषण के लिए समय-आधारित पदानुक्रम बनाने हों।एज केस संभालना और ट्रबलशूटिंग
यदि आपको फ़ंक्शन का उपयोग करते समय समस्याएँ आ रही हैं, तो यहाँ कुछ सुझाव हैं जो आपको परेशानी से बाहर निकलने में मदद कर सकते हैं।
माह-अंत और लीप वर्ष समायोजन
Snowflake
DATEADDका उपयोग करते समय माह-अंत तिथियों को बुद्धिमानी से संभालता है। माह-अंत तिथि में महीने जोड़ते समय, Snowflake परिणामी महीने के अंतिम दिन को लौटाता है, चाहे दिनों की संख्या कुछ भी हो। यह व्यवहार विभिन्न लंबाइयों वाले महीनों के बावजूद "माह-अंत" की अवधारणा को संरक्षित करता है।टाइम ज़ोन और डेलाइट सेविंग पर विचार
जब ऐसे टाइमस्टैम्प डेटा के साथ काम करते हैं जिनमें टाइम ज़ोन शामिल है (
TIMESTAMP_TZ), DATEADD डेलाइट सेविंग टाइम संक्रमणों को स्वतः ध्यान में रखता है। यह सुनिश्चित करता है कि समय बदलावों के बीच भी गणनाएँ सटीक रहें, लेकिन कभी-कभी DST सीमाओं के आसपास विशिष्ट अंतराल जोड़ते समय अप्रत्याशित परिणाम दे सकता है।DST संक्रमणों के आसपास टाइमस्टैम्प्स के साथ काम करते समय, 24 घंटे जोड़ना 1 दिन जोड़ने के बराबर नहीं हो सकता। “add_1d" तरीका आमतौर पर व्यावसायिक अनुप्रयोगों में अधिक सहज परिणाम देता है।
आम त्रुटियाँ और उनके समाधान
DATEADD त्रुटियाँ सामान्यतः टाइप मिसमैच या अमान्य इनपुट से उत्पन्न होती हैं। यहाँ आम समस्याएँ और समाधान हैं:
प्रदर्शन अनुकूलन सुझाव
बड़े पैमाने के ऑपरेशनों में
DATEADDका सर्वोत्तम प्रदर्शन पाने के लिए:DATEADDलागू करें।DATE_TRUNCपर विचार करें।इन एज केसों और अनुकूलन तकनीकों को समझने से आप Snowflake में अधिक मजबूत तिथि संशोधन तर्क लिख पाएँगे, सामान्य गलतियों से बचते हुए प्रदर्शन को अधिकतम कर पाएँगे।
निष्कर्ष
Snowflake की
DATEADDफ़ंक्शन तिथि संशोधन के लिए एक अनिवार्य टूल है, जो डेटा प्रोफेशनलों को विभिन्न तिथि भागों में समय गणित करने देती है। यह माह-अंत तिथियों, लीप वर्षों, टाइम ज़ोन और डेलाइट सेविंग टाइम संक्रमणों को पूर्वानुमेय व्यवहार के साथ संभालती है। हमने देखा किDATEADDको सदस्यता प्रबंधन, डिलीवरी ट्रैकिंग, तिथि डाइमेंशन निर्माण और बिलिंग गणनाओं में कैसे लागू किया जा सकता है। जबDATEDIFFऔरDATE_TRUNCके साथ इस्तेमाल किया जाए, तो यह Snowflake में समय-आधारित एनालिटिक्स का मुख्य घटक बन जाती है।अधिक Snowflake ज्ञान के लिए, Snowflake Foundations कौशल ट्रैक देखें या Creating Tables in Snowflake एक्सप्लोर करें ताकि आप अपनी डेटा मॉडलिंग कौशल विकसित कर सकें। Using Snowflake Time Travel गाइड आपके टेम्पोरल ऑपरेशन्स की समझ को पूरक करता है। शुरुआती लोग Snowflake Tutorial for Beginners से शुरुआत करें।