Поделиться через


Типы money и smallmoney (Transact-SQL)

Типы данных, представляющие денежные (валютные) значения.

Тип данных

Диапазон

Хранение

money

От -922 337 203 685 477,5808 до 922 337 203 685 477,5807

8 байт

smallmoney

От -214 748,3648 до 214 748,3647

4 байта

Замечания

Типы данных money и smallmoney имеют точность до одной десятитысячной денежной единицы, которую они представляют.

Чтобы отделить дробные денежные единицы, например центы, от целых денежных единиц, используйте запятую. Например, 2,15 соответствует 2 долларам и 15 центам.

Для этих типов данных может использоваться любой из следующих символов валют.

Таблица символов валют, шестнадцатеричные значения

Валютные или денежные данные не требуется заключать в одинарные кавычки ( ' ). Важно помнить, что, несмотря на возможность указания денежных значений, которым предшествует символ валюты, SQL Server не сохраняет какие-либо сведения о валюте, связанные с символом, а хранит только числовое значение.

Преобразование данных типа money

При преобразовании типа данных integer в тип money предполагаются денежные единицы. Например, целочисленное значение 4 преобразуется в значение типа данных money величиной 4 денежные единицы.

В следующем примере значения типов smallmoney и money преобразуются в типы данных varchar и decimal соответственно.

DECLARE @mymoney_sm smallmoney = 3148.29,
        @mymoney    money = 3148.29;
SELECT  CAST(@mymoney_sm AS varchar) AS 'SM_MONEY varchar',
        CAST(@mymoney AS decimal)    AS 'MONEY DECIMAL';

Ниже приводится результирующий набор.

SM_MONEY VARCHAR          MONEY DECIMAL
------------------------------ ----------------------
3148.29                        3148  
(1 row(s) affected)

См. также

Справочник

ALTER TABLE (Transact-SQL)

Функции CAST и CONVERT (Transact-SQL)

Инструкция CREATE TABLE (Transact-SQL)

Типы данных (Transact-SQL)

DECLARE @local\_variable (Transact-SQL)

SET @local\_variable (Transact-SQL)

sys.types (Transact-SQL)