SORU
24 ŞUBAT 2009, Salı


SQL Server PARA veya DECİMAL(x,y) veri türleri seçmeliyim?

Veya money Veri ve decimal(19,4) gibi bir şey para DAHİLİ olarak kullandığı (sanırım) arasında gerçek bir fark var olup olmadığını çok merak ediyorum.

money SQL Server için özel olduğunu biliyorum. Benim bilmek istediğim ise bir zorlayıcı neden tercih üzerinde Diğer; En SQL Server örnekleri (örneğin, AdventureWorks veritabanı) kullanın. money decimal gibi şeyler fiyat bilgileri.

Sadece para türü kullanmaya devam etmeli miyim, yoksa bunun yerine ondalık kullanarak bir yararı var mı? Para tip ama bu geçerli bir sebep değil:) daha az karakter

CEVAP
24 ŞUBAT 2009, Salı


SQLMenace para hatalı olduğunu söyledi. Ama para ile para bölme/çarpma yok! Ne kadar 3 kere dolar 50 sent. 150 dollarcents? Sen/ondalık olması gereken skaler, para çarpın bölün.

DECLARE
@mon1 MONEY,
@mon4 MONEY,
@num1 DECIMAL(19,4),
@num2 DECIMAL(19,4),
@num3 DECIMAL(19,4),
@num4 DECIMAL(19,4)

SELECT
@mon1 = 100,
@num1 = 100, @num2 = 339, @num3 = 10000

SET @mon4 = @mon1/@num2*@num3
SET @num4 = @num1/@num2*@num3

SELECT @mon4 AS moneyresult,
@num4 AS numericresult

Doğru sonucu verir:

moneyresult           numericresult
--------------------- ---------------------------------------
2949.8525             2949.8525

money iyi 4 veya daha fazla ondalık basamak gerekmez sürece, ve skaler para temsil eden - - emin olun decimaller.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • уσ ρℓz sυв ιℓℓ sυв вαcқ

    уσ ρℓz

    14 EKİM 2010
  • Max Lee

    Max Lee

    18 AĞUSTOS 2006