Sql Server tarih formatini 'Yil-Ay-Gün' seklinde sakladigi için, tarih parametresi içeren bir sorgu yazdigimizda mutlaka bu formata uygun bir tarih göndermeliyiz. Aksi takdirde tarih formatinin taninmadigi hakkinda bir exception dönecektir. Böyle bir problemin önüne geçmek için ise "Set DateFormat dmy" satirini sorgumuza ekleyerek, SQL Server' in tarih formatini sistemimizin tarih formatina göre ayarlayarak islemimizi yapacagiz. Ve saglikli bir sekilde sorgumuzu tamamlamis olacagiz.
Dilerseniz ufak bir örnekle, bu islemi uygulayarak inceleyelim. Simdi, ürün tablomuz olsun ve bu ürün tablosunda ürünü ekledigimiz tarihi barindiran bir fieldimiz olsun. Biz de ürün ekleme tarihini baz alarak, eklenme tarihi belirttigimiz tarihten sonra olan ürünleri listeleyelim.
Asagidaki sorgu tarih formatini degistirmeden yazdigim ve sonucunda hata aldigim sorgudur. Benim verdigim tarih formati Sql in tarih formatina uymadigi için hata veriyor.
Select *
From tblUrunler
Where fldEklenmeTarihi >'13.01.2010'
Ve bu sorgunun olusturdugu hata:
Asagidaki sorgu ise çalisan sorgumuz. "Set DateFormat dmy" satiri ile önce Sql'in tarih formatini gün-ay-yil formatina uyacak sekilde degistiriyoruz. Ve verdigimiz tarih parametresi de bu formata uygun oldugu için hatasiz çalisiyor.
Set DateFormat dmy
Select *
From tblUrunler
Where fldEklenmeTarihi >'13.01.2010'
Bu formati sisteminizin tarih formatini göz önüne alarak degistirmelisiniz. Örnegin; verdiginiz tarih parametresi '01.13.2010' seklinde ise sistemin tarih formatini mdy(ay-gün-yil) seklinde belirlemelisiniz, eger verdiginiz tarih formati '13.01.2010' seklinde ise sistemin tarih formatini dmy(gün-ay-yil) seklinde belirlemelisiniz,
Bu yazıya yapılan yorumlar:
Nuri Can
16.04.2018 10:04çok teşekkürler hocam saygılar
Faruk
13.04.2017 19:27Çok teşekkürler. Çok faydalı oldu emeğinize sağlık
Ömer Faruk
10.12.2013 18:53Kardes Çok tesekkürler.