LoslegenKostenlos loslegen

Datumarithmetik und Schaltjahre

Einige von euch haben vielleicht Erfahrung mit R. Dabei kann Datumarithmetik rund um Schaltjahre mit R und dem Paket lubridate knifflig sein. lubridate bietet zwei Arten von Funktionen: duration und period.

lubridate::ymd(20120229) - lubridate::dyears(4) --> 2008-03-01, was falsch ist.

lubridate::ymd(20120229) - lubridate::dyears(1) --> 2011-03-01, was korrekt ist.

lubridate::ymd(20120229) - lubridate::years(4) --> 2008-02-29, was korrekt ist.

lubridate::ymd(20120229) - lubridate::years(1) --> NA, was ein unerwartetes Verhalten ist.

Wir können die Funktionen DATEADD() und DATEDIFF() nutzen, um zu sehen, wie SQL Server mit Schaltjahren umgeht, und ob es ähnliche Eigenheiten gibt.

Diese Übung ist Teil des Kurses

Zeitreihenanalyse in SQL Server

Kurs anzeigen

Interaktive Übung

Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.

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;
Code bearbeiten und ausführen