T-SQL Tutorial

SQL Server MONEY


The MONEY data type in SQL Server is used to represent monetary values with a precision of up to four decimal places. It is a fixed-point data type that stores values ranging from -922,337,203,685,477.5808 to 922,337,203,685,477.5807.

When working with monetary values in SQL Server, it is recommended to use the MONEY data type instead of FLOAT or DECIMAL data types. This is because the FLOAT data type is approximate and may lead to rounding errors, while the DECIMAL data type requires more storage space and may impact performance.

The MONEY data type can be used in a variety of scenarios, such as calculating sales taxes, financial transactions, or calculating employee salaries. When performing calculations with MONEY data types, it is important to be aware of the rounding behavior of SQL Server. By default, SQL Server uses "banker's rounding," which rounds values to the nearest even number in case of a tie. This behavior can be changed using the SET ROUNDABORT statement.


Syntax

To create a column with the MONEY data type, you can use the following syntax:

CREATE TABLE ExampleTable
( ExampleColumn MONEY);


Example

You can also cast other data types to MONEY using the CAST or CONVERT functions:

SELECT CAST('123.45' AS MONEY);
SELECT CONVERT(MONEY, '123.45');

In conclusion, the MONEY data type in SQL Server is a useful tool for handling monetary values with a high level of precision and accuracy. Its fixed-point nature, combined with its ability to handle decimal places, make it a reliable choice for financial calculations.