통화 데이터 사용

Microsoft SQL Server에서는 money 및 smallmoney 데이터 형식을 사용하여 통화 데이터 또는 통화 값을 저장합니다. 이러한 데이터 형식은 다음 통화 기호 중 하나를 사용합니다.

통화 기호, 16진수 값 표

통화 데이터는 작은따옴표로 묶지 않아도 됩니다. 통화 값 앞에 통화 기호를 붙일 수 있지만 SQL Server에서는 이 기호와 관련된 통화 정보를 저장하지 않으며 숫자 값만 저장합니다. 예를 들어 100달러를 변수에 할당하려면 다음을 수행합니다.

DECLARE @dollars AS money
SET @dollars = $100
SELECT @dollars

통화 기호 없이 100.0000이 반환됩니다.

개체의 데이터 형식이 money로 정의되면 최대 자릿수는 소수점 오른쪽의 4자리를 포함하여 19자리입니다. 개체는 8바이트를 사용하여 데이터를 저장합니다. 따라서 money 데이터 형식의 전체 자릿수는 19, 소수 자릿수는 4, 길이는 8입니다.

money 및 smallmoney는 소수점 이하 자릿수가 4자리로 제한됩니다. 소수점 이하 자릿수를 더 많이 지정하려면 decimal 데이터 형식을 사용합니다.

전체 통화 단위에서 부분 통화 단위(예: 센트)를 구분하려면 마침표를 사용합니다. 예를 들어 2.15는 2달러 15센트를 나타냅니다.

money 또는 smallmoney 데이터 형식의 표시 형식에 쉼표 구분 기호가 포함되어 있지만 이러한 상수에 쉼표 구분 기호를 사용할 수 없습니다. 쉼표 구분 기호는 money 또는 smallmoney에 명시적으로 캐스트된 문자열에서만 지정할 수 있습니다. 예를 들면 다음과 같습니다.

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