CommencezCommencez gratuitement

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

Voir le cours

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;
Modifier et exécuter le code