Ho un tipo di dati in denaro in SQL Server. Come faccio a riformattare da 0,00 a 0 nella mia query?Come si converte da un tipo di dati in denaro nel server SQL?
risposta
Lo trasmettere a int ti aiuta? Il denaro è destinato ad avere le cifre decimali ...
DECLARE @test AS money
SET @test = 3
SELECT CAST(@test AS int), @test
Ciao Tina, Ora ho ottenuto la mia uscita prevista. grazie fantastico .. :-) –
Prima di tutto, non si dovrebbe mai usare il tipo di dati di denaro. Se fai dei calcoli otterrai risultati troncati. Eseguire il seguente per capire cosa intendo
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
uscita: 2949,0000 2949,8525
Ora per rispondere alla tua domanda (era un po 'vago), il tipo di dati denaro ha sempre due posti dopo la virgola. Utilizzare il tipo di dati intero se non si desidera la parte frazionaria o la conversione in int.
Forse si desidera utilizzare il tipo di dati decimale o numerico?
Microsoft Dynamics utilizza il tipo di dati monetari. L'ho visto oggi. –
Quanto è valido davvero volere più $ 450,50 * $ 32,76, mi sono seduto qui per un po 'pensando a qualsiasi momento in cui vorrei effettivamente più valori di denaro insieme, o dividerli. Ho usato il tuo sql di esempio e ho cambiato */per usare + - e ho anche avvolto quelli in un * e/e i valori per ogni abbinamento. –
Per i commenti dettagliati su questa risposta, vedere [questa risposta] (http://stackoverflow.com/questions/582797/should-you-choose-the-money-or-decimalx-y-datatypes-in-sql-server) –
Questo mi sembra un problema di formazione.
Per quanto riguarda il tipo di denaro di SQL Server 0 == 0.00
Se si sta tentando di visualizzare 0 in dire C# piuttosto che 0.00, è necessario convertirlo in una stringa e formattarlo come si desidera. (O troncare.)
conversioni di denaro a distanza normale preservare i singoli penny:
SELECT convert(varchar(30), moneyfield, 1)
L'ultimo parametro decide che cosa il formato di output appare come:
0 (default) Nessun virgole ogni tre cifre per a sinistra del punto decimale e due cifre a destra del punto decimale; ad esempio, 4235.98.
1 virgola ogni tre cifre a sinistra del separatore decimale e due cifre a destra del separatore decimale; per esempio, 3.510.92.
2 Nessuna virgola ogni tre cifre a sinistra del separatore decimale e quattro cifre a destra del separatore decimale; ad esempio, 4235.9819.
Se si desidera troncare i penny, e contare in sterline, è possibile utilizzare l'arrotondamento al canile più vicino, piano al più basso tutta la libbra, o il soffitto per arrotondare i chili:
SELECT convert(int, round(moneyfield, 0))
SELECT convert(int, floor(moneyfield))
SELECT convert(int, ceiling(moneyfield))
Funzionerà se si desidera scartare tutti i valori di penny e non solo quando è 0.00. Vedi la mia risposta per quello. –
Sembra nonostante le limitazioni intrinseche del tipo di dati in denaro, se lo stai già utilizzando (o lo hai ereditato come ho) la risposta alla tua domanda è, usa DECIMAL.
si potrebbe usare sia
SELECT PARSENAME('$'+ Convert(varchar,Convert(money,@MoneyValue),1),2)
o
SELECT CurrencyNoDecimals = '$'+ LEFT(CONVERT(varchar, @MoneyValue,1),
LEN (CONVERT(varchar, @MoneyValue,1)) - 2)
Si può provare in questo modo:
SELECT PARSENAME('$'+ Convert(varchar,Convert(money,@MoneyValue),1),2)
Ho trovato questo approach diretta e utile.
CONVERT (VARCHAR (10), convertire (denaro, fieldname)) AS PREZZO
ho avuto questo problema pure, ed è stato scattato per un po 'su di esso. Volevo visualizzare 0.00 come 0 e altrimenti mantenere il punto decimale. Di seguito non ha funzionato:
CASE WHEN Amount= 0 THEN CONVERT(VARCHAR(30), Amount, 1) ELSE Amount END
Perché la colonna risultante è stata forzata per essere una colonna MONEY. Per risolverlo, di seguito ha lavorato
CASE WHEN Amount= 0 THEN CONVERT(VARCHAR(30), '0', 1) ELSE CONVERT (VARCHAR(30), Amount, 1) END
Questo importava perché la mia colonna di destinazione finale era un VARCHAR (30), e consumatori di quella colonna sarebbe all'errore se una quantità è stato '0.00' invece di '0'.
- 1. Come si converte un file .mdf di SQL Server 2008 in SQL Server 2012?
- 2. Quale tipo di dati è GUID nel server SQL?
- 3. Come utilizzare il tipo di dati in denaro in Java, SQL, ORM
- 4. SQL Server Tipo di dati esadecimali
- 5. SQL Server converte stringa in datetime
- 6. Quale tipo di dati del server sql rappresenta meglio un doppio in C#?
- 7. Come si converte un numero intero in un tipo enumerato?
- 8. Come generare dati casuali nel server SQL
- 9. SQL Server converte colonne in righe
- 10. Come si converte un'immagine in un URL di dati con codifica Base64 in sails.js o generalmente nel lato server JavaScript?
- 11. Memorizzazione di un tipo di dati sconosciuto nel database MS SQL Server
- 12. possiamo avere dati di tipo array in sql server 2008
- 13. Come esportare i dati da SQL Server?
- 14. Come si introspe su un server SQL?
- 15. Quali dati possono essere memorizzati nel tipo di dati varbinary di SQL Server?
- 16. Il tipo di dati "MONEY" di SQL Server è un virgola mobile decimale o un punto mobile binario?
- 17. In C#, come si converte il tipo di dati TimeSpan in DateTime?
- 18. Come si converte un tipo induttivo in un tipo coinduttivo in modo efficiente (senza ricorsione)?
- 19. Cambiare il tipo di dati varchar in nvarchar nel database SQL Server 2005 esistente. Qualche problema?
- 20. Tipo di dati XML in SQL Server 2008 Query
- 21. Gerarchia di SQL Server 2008 Tipo di dati Prestazioni?
- 22. Come si converte una stringa in un tipo int in C#?
- 23. Tipo di dati per System.Version in sql server
- 24. Come si salva una piccola parte di dati da un backup del database SQL Server?
- 25. DateTime.Now in C# per fornire Datetime2 (3) nel tipo di dati SQL Server
- 26. Come si importa un file di dati SQL in SQL Server?
- 27. Tipo di dati di latitudine e longitudine di SQL Server
- 28. Utilizzare un'istruzione LIKE su SQL Server. Tipo di dati XML
- 29. SQL Server: controllo del tipo di dati di una colonna
- 30. Lavorare con lo SQL Server tipo di dati XML
Fornisci maggiori dettagli e potresti ottenere delle risposte. –