Содержание

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

  • Чтение занимает 2 мин

В этой статье

Применимо к:Applies to: SQL ServerSQL Server (все поддерживаемые версии) SQL ServerSQL Server (all supported versions) База данных SQL AzureAzure SQL DatabaseБаза данных SQL AzureAzure SQL Database Управляемый экземпляр SQL AzureAzure SQL Managed InstanceУправляемый экземпляр SQL AzureAzure SQL Managed Instance Azure Synapse AnalyticsAzure Synapse AnalyticsAzure Synapse AnalyticsAzure Synapse Analytics Параллельное хранилище данныхParallel Data WarehouseПараллельное хранилище данныхParallel Data WarehouseПрименимо к:Applies to: SQL ServerSQL Server (все поддерживаемые версии) SQL ServerSQL Server (all supported versions) База данных SQL AzureAzure SQL DatabaseБаза данных SQL AzureAzure SQL Database Управляемый экземпляр SQL AzureAzure SQL Managed InstanceУправляемый экземпляр SQL AzureAzure SQL Managed Instance Azure Synapse AnalyticsAzure Synapse AnalyticsAzure Synapse AnalyticsAzure Synapse Analytics Параллельное хранилище данныхParallel Data WarehouseПараллельное хранилище данныхParallel Data Warehouse

Типы данных, представляющие денежные (валютные) значения. Data types that represent monetary or currency values.

RemarksRemarks

Тип данныхData type ДиапазонRange ПамятьStorage
moneymoney От –922,337,203,685,477.5808 до 922,337,203,685,477.5807 (от –922,337,203,685,477.58-922,337,203,685,477.5808 to 922,337,203,685,477.5807 (-922,337,203,685,477.58
до 922,337,203,685,477.58 в Informatica.to 922,337,203,685,477.58 for Informatica. В Informatica поддерживается только два десятичных знака, а не четыре)Informatica only supports two decimals, not four.)
8 байт8 bytes
smallmoneysmallmoney От -214 748,3648 до 214 748,3647- 214,748.3648 to 214,748.3647 4 байта4 bytes

Типы данных money и smallmoney имеют точность до одной десятитысячной денежной единицы, которую они представляют.The money and smallmoney data types are accurate to a ten-thousandth of the monetary units that they represent. В Informatica типы данных money и smallmoney имеют точность до одной сотой денежной единицы, которую они представляют.For Informatica, the money and smallmoney data types are accurate to a one-hundredth of the monetary units that they represent.

Чтобы отделить дробные денежные единицы, например центы, от целых денежных единиц, используйте запятую.Use a period to separate partial monetary units, like cents, from whole monetary units. Например, 2,15 соответствует 2 долларам и 15 центам.For example, 2.15 specifies 2 dollars and 15 cents.

Для этих типов данных может использоваться любой из следующих символов валют.These data types can use any one of the following currency symbols.

Валютные или денежные данные не требуется заключать в одинарные кавычки ( ‘ ).Currency or monetary data does not need to be enclosed in single quotation marks ( ‘ ). Важно помнить, что, несмотря на возможность указания денежных значений, которым предшествует символ валюты, SQL ServerSQL Server не сохраняет какие-либо сведения о валюте, связанные с символом, а хранит только числовое значение.

It is important to remember that while you can specify monetary values preceded by a currency symbol, SQL ServerSQL Server does not store any currency information associated with the symbol, it only stores the numeric value.

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

При преобразовании типа данных integer в тип money используются денежные единицы.When you convert to money from integer data types, units are assumed to be in monetary units. Например, целочисленное значение 4 преобразуется в значение типа данных

money величиной 4 денежные единицы.For example, the integer value of 4 is converted to the money equivalent of 4 monetary units.

В следующем примере выполняется преобразование значений типов smallmoney и money в значения типов varchar и decimal соответственно.The following example converts smallmoney and money values to varchar and decimal data types, respectively.

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';  

Результирующий набор:Here is the result set.

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

См. также разделSee also

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)ALTER TABLE (Transact-SQL) CAST and CONVERT (Transact-SQL) CREATE TABLE (Transact-SQL) Data Types (Transact-SQL) DECLARE @local_variable (Transact-SQL) SET @local_variable (Transact-SQL) sys.types (Transact-SQL)

date (Transact-SQL) — SQL Server