तारीख़ गणित और लीप वर्ष
आपमें से कुछ ने R का उपयोग किया होगा, और यहाँ ध्यान दें कि लीप वर्ष से जुड़ा डेट मैथमेटिक्स R और lubridate पैकेज में पेचीदा हो सकता है। lubridate में दो तरह के फंक्शन होते हैं: duration और period.
lubridate::ymd(20120229) - lubridate::dyears(4) --> 2008-03-01, जो गलत है.
lubridate::ymd(20120229) - lubridate::dyears(1) --> 2011-03-01, जो सही है.
lubridate::ymd(20120229) - lubridate::years(4) --> 2008-02-29, जो सही है.
lubridate::ymd(20120229) - lubridate::years(1) --> NA, जो अप्रत्याशित व्यवहार है.
हम DATEADD() और DATEDIFF() फंक्शन का उपयोग करके देख सकते हैं कि SQL Server लीप वर्षों को कैसे संभालता है और क्या उसमें भी ऐसे ही विचित्रताएँ हैं.
यह अभ्यास पाठ्यक्रम का हिस्सा है
SQL Server में Time Series Analysis
इंटरैक्टिव व्यावहारिक अभ्यास
इस अभ्यास को इस नमूना कोड को पूरा करके आज़माएँ।
DECLARE
@LeapDay DATETIME2(7) = '2012-02-29 18:00:00';
-- Fill in the date parts and intervals as needed
SELECT
DATEADD(___, ___, @LeapDay) AS PriorDay,
DATEADD(___, ___, @LeapDay) AS NextDay,
-- For leap years, we need to move 4 years, not just 1
DATEADD(YEAR, ___, @LeapDay) AS PriorLeapYear,
DATEADD(YEAR, ___, @LeapDay) AS NextLeapYear,
DATEADD(___, -1, @LeapDay) AS PriorYear;