SQL Server'da para veri türüm var. Sorgumda 0.00 ile 0 arasında nasıl yeniden biçimlendiririm?SQL sunucudaki para veri türünden nasıl dönüşebilirim?
cevap
Yardımcı olmak size yardımcı olur mu? Para Her
DECLARE @test AS money
SET @test = 3
SELECT CAST(@test AS int), @test
Merhaba Tina, Şimdi beklenen çıktımı aldım. teşekkürler harika .. :-) –
İlk ... basamak olacak şekilde içindir, paranın veri türü kullanmak asla. Herhangi bir hesaplama yaparsanız, kesilmiş sonuçlar elde edersiniz. Ne demek istediğimi görmek için aşağıdaki çalıştırın
DECLARE
@mon1 MONEY,
@mon2 MONEY,
@mon3 MONEY,
@mon4 MONEY,
@num1 DECIMAL(19,4),
@num2 DECIMAL(19,4),
@num3 DECIMAL(19,4),
@num4 DECIMAL(19,4)
SELECT
@mon1 = 100, @mon2 = 339, @mon3 = 10000,
@num1 = 100, @num2 = 339, @num3 = 10000
SET @mon4 = @mon1/@mon2*@mon3
SET @num4 = @num1/@num2*@num3
SELECT @mon4 AS moneyresult,
@num4 AS numericresult
Çıktı: 2949,0000 2949,8525
Şimdi sorunuzu (o belirsiz biraz), para veri türü daima virgülden sonra iki yer vardır cevaplamak için. Kesirli parçayı istemiyorsanız veya int öğesine dönüştürüyorsanız, integer veri türünü kullanın.
Belki ondalık veya sayısal veri türünü kullanmak istersiniz?
Microsoft Dynamics, para veri türünü kullanıyor. Bunu bugün gördüm. –
Gerçekten çok sayıda $ 450.50 * $ 32,76 $ olmak istemek için ne kadar geçerliydi, bir süreliğine bir arada düşünürdüm, bir keresinde çoklu para değerlerini bir arada görmek istiyorum ya da onları bölüyorum. Örnek sql'nizi kullandım ve */+ kullanmak için değiştirdim ve hatta * ve/ve her biri için eşleşen değerlere sardım. –
Bu yanıt hakkındaki ayrıntılı yorumlar için, [bu yanıt] 'a bakın (http://stackoverflow.com/questions/582797/should-you-choose-the-money-or-decimalx-y-datatypes-in-sql-server –
Bu, benim için biçimlendirici bir sorun gibi görünüyor.
SQL Server'ın para türü ile ilgili olarak 0 == 0,00
Eğer 0 C# yerine o zaman 0 göstermeye çalışıyorsanız, onu bir dizeye dönüştürmeli ve istediğiniz gibi biçimlendirmelisiniz. (Ya da keser.)
Normal para dönüşümleri bireysel kuruş koruyacak:
SELECT convert(varchar(30), moneyfield, 1)
son parametre çıkış biçimi neye benzediğini karar verir:
0 (varsayılan) Hayır virgül her üç basamak için Ondalık noktasının solu ve ondalık basamağın sağındaki iki basamak; örneğin, 4235.98.
1 Ondalık noktasının solundaki her üç basamak ve ondalık hatanın sağındaki iki basamak; örneğin, 3,510,92.
2 Ondalık noktaların solunda her üç basamakta virgül ve ondalık basamağın sağında dört basamak yoktur; örneğin, 4235.9819. Eğer harcayacağınız kesecek ve size en yakın hayvan barınağına yuvarlama kullanabilirsiniz lira saymak isterseniz
, en düşük tüm sterlin veya tabandan tavana pound kadar yuvarlak:
SELECT convert(int, round(moneyfield, 0))
SELECT convert(int, floor(moneyfield))
SELECT convert(int, ceiling(moneyfield))
Bu, tüm kuruş değerlerini atmak istediğinizde işe yarayacaktır. Bunun için cevabımı görün. –
görünüyor para veri türünün içsel sınırlamalarına rağmen, eğer zaten kullanıyorsanız (veya sahip olduğum şekilde miras aldınız), sorunuzun cevabı, DECIMAL kullanın.
şunu kullanabilirsiniz ya
SELECT PARSENAME('$'+ Convert(varchar,Convert(money,@MoneyValue),1),2)
veya
SELECT CurrencyNoDecimals = '$'+ LEFT(CONVERT(varchar, @MoneyValue,1),
LEN (CONVERT(varchar, @MoneyValue,1)) - 2)
Böyle deneyebilirsiniz:
SELECT PARSENAME('$'+ Convert(varchar,Convert(money,@MoneyValue),1),2)
Bu approach doğrudan ve yararlı buldum.FİYAT
OLARAK
CONVERT (VARCHAR (10), CONVERT (PARA, alanadı)) Ben de bu sorunu vardı ve bunun üzerine bir süre kadar takıldı. 0.00 değerini 0 olarak göstermek istedim ve aksi halde ondalık noktasını saklamak istedim. Aşağıdaki işe yaramadı: Sonuçta elde edilen sütun bir MONEY sütunu olmak zorunda kaldığından, . Bunu çözmek için, benim son hedef sütunu bir VARCHAR (30) olduğu için şu
CASE WHEN Amount= 0 THEN CONVERT(VARCHAR(30), '0', 1) ELSE CONVERT (VARCHAR(30), Amount, 1) END
Bu önemi çalıştı ve bir miktar yerine '0' '0.00' olsaydı o sütunun tüketicilerin dışarı hata olacaktır.
- 1. Para veri türü SQL Server
- 2. SQL Para birimi eklerken kullanacağı veri türü
- 3. Haskell: bu veri türünden functor?
- 4. DataRowView DataRowView'a nasıl dönüşebilirim? #
- 5. .NET DateTime'dan IronPython tarihine nasıl dönüşebilirim?
- 6. Python'da zaman damgasından bugüne nasıl dönüşebilirim?
- 7. sql sunucu değişikliği int türünden bağımsız tanıtıcıya PK türü
- 8. belirlenmesi SQL veri yolu HAMLE
- 9. Aynı sunucudaki Okuma Dosyası
- 10. Bir TypeTag türünden alın?
- 11. nesne türünden devralınan neden
- 12. Para biçimi için Naira Para birimi simgesi nasıl kullanılır? Html
- 13. İçerik türünden dosya uzantısı nasıl edinilir?
- 14. Bir javascript türünden bir yöntemi nasıl kaldırırsınız?
- 15. Çevrimdışı sunucudaki Ruby mücevher bağımlılıkları
- 16. Metni sunucudaki yola (svg) dönüştürmek?
- 17. 'void' türünden 'bool' türüne dönüştürülemez.
- 18. SQL veri dizisi
- 19. X türünden x türüne dönüştürülemiyor?
- 20. Bu diziyi nasıl alabilirim ve bir diziye dönüşebilirim?
- 21. NSLocale para biriminden nasıl edinilir?
- 22. ISO para birimi listesi
- 23. SQL Veri Hiyerarşisi
- 24. Para birimi cinsinden görüntülenme C#
- 25. PL/SQL veri yapısı
- 26. Genel T türünden Sınıflandırma T
- 27. Hata: "Pencere türünden yöntem() gösterilmiyor"
- 28. Sunucudaki Git (windows server 2012)
- 29. Yazılımda ondalık olmayan para nasıl temsil edildi?
- 30. Bir Dataframe sütunu pyspark'ta Dize türünden Çift türüne nasıl değiştirilir
Daha fazla ayrıntı sağlayın ve bazı yanıtlar alabilirsiniz. –