MsSQL Tarih Sorunu ve Çözümü

In: Web

13 Eki 2009

Merhabalar

Normalde günlük yaşamdan, sinemadan, anılarımdan falan birşeyler yazıyorum. Bu tip bir yazıyı yazmak blogumun konseptine aykırı olsada çok tav olduğum bir durumu ve bu durumun çözümünü benimle aynı duruma düşecek kişiler için yazmayı insanlık namına bir görev olarak kabul ettim ve harekete geçtim :)

Olay bir arkadaşımın bir sorunumuz var çözsen çözsen bu işi sen çözersin demesiyle başladı. Bir ilan sitesi yazdırılmış ASP ile fakat yazan kişi parayı alıp ortalıktan toz olunca öylece kala kalmışlar. Rica üzerine duruma el attım.

Alınan hata

Microsoft OLE DB Provider for ODBC Drivers error ‘80040e07′ [Microsoft][ODBC SQL Server Driver][SQL Server]
The conversion of a char data type to a datetime data type resulted in an out-of-range datetime value.

idi. Açık ve net olarak tarihle ilgili bir problem olduğu ortadaydı. İngilizce tarih ay, gün, yıl bizim tarihlerimiz ise gün, ay, yıl olarak yazıldığından dolayı sql sorgularında ve kayıt eklemede sorun çıkıyor. Ha sorun nasıl çıkıyor now() fonksiyonunu kullandığınızda çıkıyor. now() karşılığı sunucu gün.ay.yıl saat:dakika veya ay.gün.yıl saat:dakika şeklinde çıktı veriyor. MsSQL sütunu ise saniyeyide istiyor fonksiyon oluşturarak bunu yapmak mümkün olsada tarih sorgulamada vs. yine sorun çıkartma ihtimali var. Hem fonksiyon yazmakla uğraşıp hemde tarihe göre sorgulamada sorun yaşama riskine girmek yerine getdate() yazıldığında hem sorgulama yaparken, hem kayıt eklerken hiçbir sorunla karşılaşmadan cillop gibi scriptiniz çalışıyor.

Güle güle kullanın :)

Yorum Formu

Blog Hakkında

Buraya blog hakkında birşeyler yazmam gerekiyor ama üşendiğim için sonraya bırakıyorum...