Bu makalede SQL Server'da sorgularımızı yazarken, tarih formatı ile ilgili bir problemin nasıl önleneceği hakkında bilgiler yer almaktadır. "Set DateF

Set DateFormat Fonksiyonu ile Tarih Formatını Değiştirmek

            Sql Server tarih formatını 'Yıl-Ay-Gün' şeklinde sakladığı için, tarih parametresi içeren bir sorgu yazdığımızda mutlaka bu formata uygun bir tarih göndermeliyiz. Aksi takdirde tarih formatının tanınmadığı hakkında bir exception dönecektir. Böyle bir problemin önüne geçmek için ise "Set DateFormat dmy" satırını sorgumuza ekleyerek, SQL Server' ın tarih formatını sistemimizin tarih formatına göre ayarlayarak işlemimizi yapacağız. Ve sağlıklı bir şekilde sorgumuzu tamamlamış olacağız.

            Dilerseniz ufak bir örnekle, bu işlemi uygulayarak inceleyelim. Şimdi, ürün tablomuz olsun ve bu ürün tablosunda ürünü eklediğimiz tarihi barındıran bir fieldimiz olsun. Biz de ürün ekleme tarihini baz alarak, eklenme tarihi belirttiğimiz tarihten sonra olan ürünleri listeleyelim.
            
           Aşağıdaki sorgu tarih formatını değiştirmeden yazdığım ve sonucunda hata aldığım sorgudur. Benim verdiğim tarih formatı Sql in tarih formatına uymadığı için hata veriyor.  

       Select      *    

       From        tblUrunler

       Where       fldEklenmeTarihi >'13.01.2010'


Ve bu sorgunun oluşturduğu hata:

 

The conversion of a varchar data type to a datetime data type resulted in an out-of-range value.

 

 

 

 

 


Aşağıdaki sorgu ise çalışan sorgumuz. "Set DateFormat dmy" satırı ile önce Sql'in tarih formatını gün-ay-yıl formatına uyacak şekilde değiştiriyoruz. Ve verdiğimiz tarih parametresi de bu formata uygun olduğu için hatasız çalışıyor.

 

 

 

 

 

 

 

       Set DateFormat dmy
 

       Select      *    

       From        tblUrunler

       Where       fldEklenmeTarihi >'13.01.2010'


Bu formatı sisteminizin tarih formatını göz önüne alarak değiştirmelisiniz. Örneğin; verdiğiniz tarih parametresi '01.13.2010' şeklinde ise sistemin tarih formatını mdy(ay-gün-yıl) şeklinde belirlemelisiniz, eğer verdiğiniz tarih formatı '13.01.2010' şeklinde ise sistemin tarih formatını dmy(gün-ay-yıl) şeklinde belirlemelisiniz,

 

İlgili Makaleler

Bu yazıya 0 yorum yapılmış.

Yorum Gönder