BaşlayınÜcretsiz başlayın

Tarih hesaplaması ve artık yıllar

Aranızda R kullananlar olabilir; burada R ve lubridate paketiyle artık yıl tarih hesaplamasının zor olabileceğini not düşelim. lubridate iki tür işlev sunar: duration ve period.

lubridate::ymd(20120229) - lubridate::dyears(4) --> 2008-03-01, bu yanlış.

lubridate::ymd(20120229) - lubridate::dyears(1) --> 2011-03-01, bu doğru.

lubridate::ymd(20120229) - lubridate::years(4) --> 2008-02-29, bu doğru.

lubridate::ymd(20120229) - lubridate::years(1) --> NA, bu beklenmedik bir davranış.

SQL Server'ın artık yıllarla nasıl başa çıktığını görmek ve benzer tuhaflıkları olup olmadığını anlamak için DATEADD() ve DATEDIFF() işlevlerini kullanabiliriz.

Bu egzersiz, kursun bir parçasıdır

SQL Server'da Zaman Serisi Analizi

Kursa Göz Atın

Uygulamalı etkileşimli egzersiz

Bu egzersizi bu örnek kodu tamamlayarak deneyin.

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;
Kodu Düzenle ve Çalıştır