COMPUTER ENGINEER

Örneklere git
Blog
SQL Server / T-SQL6 dk çalışma
15/ 65

Sorgulama ve aggregation

Tarih, saat ve dönem analizleri

Sınırlar, saat dilimleri ve dönemler.

AnlaÖrneği inceleKendin uygula

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.

NERESİNDE KULLANIRSIN?

Aylık raporlar, tarih filtreleri ve süre hesabında.

SIK YAPILAN HATA

DATEDIFF(year) sonucunu kesin yaş olarak kullanmak; tarih-saat son sınırını yanlış kurmak.

01 / UYGULAMA

Aynı konu. Üç farklı derinlik.

T-SQL / SQL Server 2019+
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.

02 / SIRA SENDE

Önce kendin dene.

Nisan siparişlerini yarı açık aralıkla getir.

Çözümü ve açıklamasını göster
Açıklamalı çözüm
SELECT OrderId FROM lab.SalesOrder WHERE OrderDate >= '2026-04-01' AND OrderDate < '2026-05-01';

109, 110, 111 ve 112 döner.