Mulai sekarangMulai gratis

Perhitungan tanggal dan tahun kabisat

Sebagian dari Anda mungkin pernah menggunakan R, dan di sini kami mencatat bahwa perhitungan tanggal pada tahun kabisat bisa menjadi pelik di R dengan paket lubridate. lubridate memiliki dua jenis fungsi: duration dan period.

lubridate::ymd(20120229) - lubridate::dyears(4) --> 2008-03-01, yang tidak benar.

lubridate::ymd(20120229) - lubridate::dyears(1) --> 2011-03-01, yang benar.

lubridate::ymd(20120229) - lubridate::years(4) --> 2008-02-29, yang benar.

lubridate::ymd(20120229) - lubridate::years(1) --> NA, yang merupakan perilaku tidak terduga.

Kita dapat menggunakan fungsi DATEADD() dan DATEDIFF() untuk melihat bagaimana SQL Server menangani tahun kabisat guna mengetahui apakah ada keanehan yang sama.

Latihan ini merupakan bagian dari kursus

Analisis Deret Waktu di SQL Server

Lihat Kursus

Latihan interaktif langsung praktik

Cobalah latihan ini dengan melengkapi kode contoh ini.

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;
Edit dan Jalankan Kode