Sorgulama ve aggregation
Tarih, saat ve dönem analizleri
Sınırlar, saat dilimleri ve dönemler.
Kavramı anlayalım
DATEADD bir zaman aralığı ekler; DATEDIFF iki değer arasında seçilen tarih parçasının sınır geçişlerini sayar, her zaman gerçek geçen süreyi ölçmez. Bir saniyelik yıl sınırı geçişi DATEDIFF(year, ...) için 1 olabilir. YEAR ve MONTH raporda dönem etiketi oluşturabilir.
Filtrelenen indeksli sütunu YEAR(OrderDate) ile sarmak yerine başlangıç ve bitiş koşullarını doğrudan tarih alanına uygula. Saat dilimi politikası uygulama ve rapor arasında tutarlı olmalıdır. Güncel tarih fonksiyonlarıyla yazılan alıştırmaların sonucu zamanla değişir; burada sabit 2026 tarihleri kullanıyoruz.
Aylık raporlar, tarih filtreleri ve süre hesabında.
DATEDIFF(year) sonucunu kesin yaş olarak kullanmak; tarih-saat son sınırını yanlış kurmak.
Aynı konu. Üç farklı derinlik.
SELECT DATEADD(day, 7, CAST('2026-01-05' AS date)) AS NextWeek;12 Ocak 2026 değerini üretir.
Bu sayfa SQL çalıştırmaz. Örnekleri indirilebilir SqlStudioLab veritabanında, SSMS’de uygula. Geçici tablo örneklerini yeniden çalıştırırken yalnız ilgili #tabloyu temizle. VIEW, procedure ve function örnekleri lab’da kalıcı nesne oluşturur; üretim bağlantısı kullanma.
Önce kendin dene.
Nisan siparişlerini yarı açık aralıkla getir.
Çözümü ve açıklamasını göster
SELECT OrderId FROM lab.SalesOrder WHERE OrderDate >= '2026-04-01' AND OrderDate < '2026-05-01';109, 110, 111 ve 112 döner.