MSSQL 2005 ile yaşadığım bir tecrübeyi paylaşmak istiyorum. Daha önce kendi bilgisayarımda kurduğum geliştirme oratamımda Türkçe Windows XP Pro üzerinde çalışan IIS ve MSSQL sunucusu ile çalışarak uygulamamı geliştirmiştim. Fakat müşterimin ortamı İngilizce Windows XP Pro idi ve işte noktadan sonra benim veritabanındaki tarih alanlarını güncelleme ve ekleme sorunum ortaya çıkıverdi.
Geliştirme ortamım deneme sürümlerinden oluşutuğundan ve zaten windows kullanmadığımdan malesef sizlere veritabanındaki alan ayarlarını görsel örneklerle göstermem mümkün olamayacak. Ama öyle bir ayar kullanarak da hiç bir şey yapamamıştım malesef 🙂
Ben tarih alanlarını gg.aa.yyyy (15.11.2008) olacak şekilde kullanmaya çalışıyordum. Fakat alet inatla girdiğim tarihleri aa.gg.yyyy olarak almaya çalışıyordu. Uzun aramalar sonucunda bulduğum şu oldu. Her tarih alanı ile ilgili işlem yapan SQL cümleciğinin önüne, kısa bir komut koydum.
Aşağıdaki SQL’de veriler PHP kullanılarak girildiğinden değişkenler PHP değişkenidir, “SET DATEFORMAT DMY” benim hayatımı kurtardı.
SET DATEFORMAT DMY; UPDATE rapor SET resmitatil='$rt', digertatil='$gt', tarih='$tarih' WHERE id='$id' AND makina='$makina' |
Aklınızda olsun.
Burada SET DATEFORMAT ‘tan sonra kullanılan DMY ; day (gün), ay (month) ve yıl (year) olarak, gönderilen SQL deki tarih bilgisinin ne şekilde olduğunu belirtmiş oluyor. Farklı şekillerde de kullanmak mümkün hiç şüphesiz.