2016-04-05 16 views
0

ile değiştirirken tutar yuvarlama Hesaplamalarımda bazı miktarların orijinal ürünlerle eşleşmediğini fark ettim (excel - içe aktarmadan önce).Virgülün yerini

Brezilya'da tutarlar genellikle virgülleri ondalık tanımlayıcı olarak gösterir, ancak SQL Server'ımı tanımadan standart İngilizce olarak tuttum.

Bulunan geçici çözüm, virgülün yerini nokta olarak değiştirdi, ancak SQL Server otomatik olarak yuvarlıyor. Aşağıdaki örneğe bakın:

select vlr_contab_item vl1, replace(vlr_contab_item,',','.') vl2 
-------------------- 
vl1  | vl2 
-------------------- 
40783,29 | 40783.3 
-------------------- 

Değiştirildikten sonra miktarları nasıl YARATMAYIN?

+1

kolon 'vl1' ait veri türü nedir ? Vl2'nin çıktısının size virgül verdiğini görüyor musunuz? –

+0

vlr_contab_item (vl1) türü boştur. –

+0

Asla float kullanmayın, bu bir gerçek olmayan veri türüdür ve dönecektir. – HLGEM

cevap

0
DECLARE @amount AS MONEY 

SET @amount = 1200.5566 

SELECT FORMAT(@amount, 'N', 'en-us') AS 'Number Format' 
      ,FORMAT(@amount, 'G', 'en-us') AS 'General Format' 
      ,FORMAT(@amount, 'C', 'en-us') AS 'Currency Format' 
      ,FORMAT(@amount, 'C3', 'en-us') AS 'Currency Format' 
      ,FORMAT(@amount ,'F', 'de-DE') AS 'Currency Format' 

FORMAT (Transact-SQL)

Standard Numeric Format Strings

+0

Çalışıyor! Bu gerçekten yararlı! Çok teşekkür ederim! –

İlgili konular