Za pomocą dane monetarne
Microsoft SQL Server stores monetary data, or currency values, using two data types: moneyand smallmoney.Te typy danych, można użyć dowolnego z następujących symboli waluty.
Waluty lub dane monetarne nie muszą być ujęte w znaki pojedynczego cudzysłowu (' ).Koniecznie należy pamiętać, że podczas gdy można określić wartości pieniężnych poprzedzone symbolem waluty SQL Server nie nie magazynu informacji waluty skojarzony symbol, przechowuje tylko wartości liczbowe.Na przykład aby przypisać wartość 100 zł do zmiennej, należy następujące:
DECLARE @dollars AS money
SET @dollars = $100
SELECT @dollars
Zwrócona wartość jest 100.0000 bez symbolu waluty.
Jeśli obiekt jest zdefiniowany jako money, może zawierać maksymalnie 19 cyfr, z których 4 z prawej strony po przecinku.Obiekt używa 8 bajtów do przechowywania danych.money Więc typ danych ma dokładność 19, skalę 4 i długość 8.
moneyi smallmoney są ograniczone do czterech separatora dziesiętnego.Użyj decimal Typ danych, jeśli są wymagane więcej punktów dziesiętnych.
Użyj okres do oddzielenia częściowe jednostkach monetarnych centów, podobnie jak z jednostkach monetarnych w całości.Na przykład 2.15 określa 2 dolarów i 15 centów.
Przecinków jako separatorów, nie są dozwolone w money lub smallmoney stałe, ale format wyświetlania tych typów danych zawiera przecinek separatory.Można określić przecinków jako separatorów tylko ciągi znaków jawnie oddanych do money lub smallmoney.Na przykład:
USE tempdb;
GO
CREATE TABLE TestMoney (cola INT PRIMARY KEY, colb MONEY);
GO
SET NOCOUNT ON;
GO
-- The following three INSERT statements work.
INSERT INTO TestMoney VALUES (1, $123.45);
GO
INSERT INTO TestMoney VALUES (2, $123123.45);
GO
INSERT INTO TestMoney VALUES (3, CAST('$444,123.45' AS MONEY) );
GO
-- This INSERT statement gets an error because of the comma
-- separator in the money string.
INSERT INTO TestMoney VALUES (3, $555,123.45);
GO
SET NOCOUNT OFF;
GO
SELECT * FROM TestMoney;
GO