MulaiMulai sekarang secara gratis

Buat deret waktu selama satu tahun

Tujuan latihan ini adalah membuat deret hari selama satu tahun. Untuk tugas ini Anda harus menggunakan dua fungsi waktu/tanggal berikut:

  • GETDATE()
  • DATEADD(datepart, number, date)

Dengan GETDATE() Anda mendapatkan waktu saat ini (misalnya 2019-03-14 20:09:14) dan dengan DATEADD(month, 1, GETDATE()) Anda mendapatkan tanggal saat ini ditambah satu bulan (misalnya 2019-04-14 20:09:14).

Untuk mendapatkan deret hari selama satu tahun, Anda memerlukan 365 langkah rekursi. Oleh karena itu, tingkatkan jumlah iterasi dengan OPTION (MAXRECURSION n) di mana n merepresentasikan jumlah iterasi.

Latihan ini adalah bagian dari kursus

Kueri Hierarkis dan Rekursif di SQL Server

Lihat Kursus

Petunjuk latihan

  • Inisialisasi waktu saat ini sebagai time.
  • Pilih CTE secara rekursif dan gabungkan anchor dan anggota rekursif dengan pernyataan yang benar.
  • Batasi jumlah iterasi menjadi jumlah hari dalam satu tahun dikurangi 1.
  • Tingkatkan jumlah maksimum iterasi menjadi jumlah hari dalam satu tahun dengan OPTION (MAXRECURSION n).

Latihan interaktif praktis

Cobalah latihan ini dengan menyelesaikan kode contoh berikut.

WITH time_series AS (
	SELECT 
  		-- Get the current time
	    ___ AS time
  	UNION ALL
	SELECT 
	    DATEADD(day, 1, time)
  	-- Call the CTE recursively
	FROM ___
  	-- Limit the time series to 1 year minus 1 (365 days -1)
  	WHERE time < GETDATE() + ___)
    
SELECT time
FROM time_series
-- Increase the number of iterations (365 days)
OPTION(MAXRECURSION ___)
Edit dan Jalankan Kode