Arama butonu
Bu konudaki kullanıcılar: 1 misafir
2
Cevap
4267
Tıklama
0
Öne Çıkarma
Para birimi ve İki tarih arası sorgulama (Sinir krizine az kaldı)
T
12 yıl
Yüzbaşı
Konu Sahibi

Arkadaşlar %90 projemde Oracle kullandım kalanında ise tercihim mysql oldu ama ilk defa mssql kullanmak zorunda kalıyorum. 2 tane sorunum var.

1. Parasal veri tipi sorunu. Oracle da number veri tipi karşılığı olan bir veri tipi yok. Parasal veri tipi için önerilen şey ise Money. Fakat money kullandığım zaman şu şekil bir durum çıkıyor ortaya;

Form Alanına Yazdığım: 5.56
Veri tabanına kaydedilen: 5,5600
Tekrar form alanında görüntülediğim zaman gösterilen: 5,5600
Forma yüklenen veriyi hiç dokunmadan kaydettiğimde veri tabanına kaydedilen: 55600,0000

Veri tabanına Decimal olarak convert edip göndersemde convert edip görüntülesemde oluşan durum bu.

Money yerine Decimal kullandığım zaman oluşan durumda şu şekilde;

Form Alanına Yazdığım: 5.56
Veri tabanına kaydedilen: 5.56
Tekrar form alanında görüntülediğim zaman gösterilen: 5,56
Forma yüklenen veriyi hiç dokunmadan kaydettiğimde gelen hata: Error converting data type nvarchar to numeric.

Özet olarak parasal birim alanlar için (Asp.net projesinde) tercih etmem gereken yöntem nedir. Kıytırık bir para kaydetme işlemi için 50 takla atmak zorunda kalmak bile Oracle iyiki var dememe yetiyor.

2. Tarih ve saat kayıtlı bir kolonda (DateTime) iki tarih arası veri sorgulama fakat saat kullanılarak.

Örneğin: 21.12.2013 21:00:00 ile 23.12.2013 21:00:00 arası bir sorgulama yapmak istiyorum. Between saat olduğunda çalışmıyor. Saat alanı 00:00:00:000 olursa getiriyor. Bunun için kullandığınız bir yöntem varmıdır ?

Teşekkürler şimdiden cevaplar için.

DH forumlarında vakit geçirmekten keyif alıyor gibisin ancak giriş yapmadığını görüyoruz.

Üye olduğunda özel mesaj gönderebilir, beğendiğin konuları favorilerine ekleyip takibe alabilir ve daha önce gezdiğin konulara hızlıca erişebilirsin.

Üye Ol Şimdi Değil



T
12 yıl
Yüzbaşı
Konu Sahibi

Neden benim sorduğum tüm sorular cevapsız kalıyor ?


Bu mesaja 1 cevap geldi.
L
12 yıl
Teğmen

para birimlerinde dediğin gibi bir hataya karşılaşmadım şimdiye kadar. sadece db ye kaydederken "," ü "." ile replace edersen muhtemelen sorun çözülecektir. Ben şimdiye kadar hep böyle çalıştım sql server da.
ayrıca tarih formatından dolayı hata alıyorsun galiba. Yoksa between fonksiyonu saat aralığınıda dikkate alır.
aşağıda sana bir örnek sql yazıyorum umarım işini görür.
select * from SURVEY_USERS_RELATION where createDate between CONVERT(datetime,'03-12-2013 00:00',103) and CONVERT(datetime,'16-12-2013 23:59',103)
12. ayın 3 ile 12. ayın 16 sı arasında sorgulama yapıyorum burada.



DH Mobil uygulaması ile devam edin. Mobil tarayıcınız ile mümkün olanların yanı sıra, birçok yeni ve faydalı özelliğe erişin. Gizle ve güncelleme çıkana kadar tekrar gösterme.