Calculs de dates et années bissextiles
Certaines et certains d'entre vous ont peut-être déjà utilisé R. Sachez que les calculs de dates pour les années bissextiles peuvent être délicats avec R et le module lubridate. lubridate offre deux types de fonctions : duration et period.
lubridate::ymd(20120229) - lubridate::dyears(4) --> 2008-03-01, ce qui est erroné.
lubridate::ymd(20120229) - lubridate::dyears(1) --> 2011-03-01, ce qui est correct.
lubridate::ymd(20120229) - lubridate::years(4) --> 2008-02-29, ce qui est correct.
lubridate::ymd(20120229) - lubridate::years(1) --> NA, ce qui est un comportement inattendu.
Nous pouvons utiliser les fonctions DATEADD() et DATEDIFF() pour voir comment SQL Server gère les années bissextiles et vérifier s'il présente les mêmes particularités.
Cette activité fait partie du cours
Analyse de séries chronologiques dans SQL Server
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
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;