SQL Server’da tarih alanları için kullanılan Veri Tipler le ilgili küçük bir örnek yapalım. Veri tipimiz SmallDatetime olsun.SmallDateTime’01.06.2007 00:00:00”YYYY-MM-DD hh:mm:ss’Şeklinde kayıt tutar.Bugünün kayıtlarını getirmek istiyoruz yada belirlediğimiz bir tarihteki kayıtları getirmek istiyoruz. Bu gibi durumlarda şöyle yapılabilirdi.select * from tablo_adi where tarih_alani = getdate()
Fakat saat,dakika,Saniye cinsindende kayıt tuttuğu için kayıtlar eksik gelecektir.Tarih Alanını ‘gün/ay/yil’ şeklinde parçalayıp şöyle bir sql de yazabiliriz. Biraz zahmetli olsada arkadaşım ‘mma’ 3 milyon kayıtta yaptığı testte yapılan işlemler içinde en performanslısı olduğunu söyledi bunuda not olarak düşelim.select * from tablo_adi where day(tarih) = day(getdate()) and month(tarih) = month(getdate()) and year(tarih) = year(getdate())
Daha az zahmetle yapacağımız bir örnek daha vereyim.SELECT * FROM tablo_adiwhere Convert(nvarchar(8), tarih, 112) = Convert(nvarchar(8), getdate(), 112)
Tarih alanı ve getdate() ile aldığımız şuan’ın tarih bilgisininvarchar(8) e çeviriyoruz.

‘01.06.2007 00:00:00’ olacağı değer ‘20070106’

bu şekilde eşit olan kayıtları getirebilirsiniz.