- (Subtraction) (Transact-SQL)
Applies to: SQL Server Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System (PDW) SQL analytics endpoint in Microsoft Fabric Warehouse in Microsoft Fabric
Subtracts two numbers (an arithmetic subtraction operator). Can also subtract a number, in days, from a date.
Transact-SQL syntax conventions
Syntax
expression - expression
Arguments
expression
Is any valid expression of any one of the data types of the numeric data type category, except the bit data type. Cannot be used with date, time, datetime2, or datetimeoffset data types.
Result Types
Returns the data type of the argument with the higher precedence. For more information, see Data Type Precedence (Transact-SQL).
Examples
A. Using subtraction in a SELECT statement
The following example calculates the difference in tax rate between the state or province with the highest tax rate and the state or province with the lowest tax rate.
Applies to: SQL Server and SQL Database.
-- Uses AdventureWorks
SELECT MAX(TaxRate) - MIN(TaxRate) AS 'Tax Rate Difference'
FROM Sales.SalesTaxRate
WHERE StateProvinceID IS NOT NULL;
GO
You can change the order of execution by using parentheses. Calculations inside parentheses are evaluated first. If parentheses are nested, the most deeply nested calculation has precedence.
B. Using date subtraction
The following example subtracts a number of days from a datetime
date.
Applies to: SQL Server and SQL Database.
-- Uses the AdventureWorks sample database
DECLARE @altstartdate DATETIME;
SET @altstartdate = CONVERT(DATETIME, 'January 10, 1900 3:00 AM', 101);
SELECT @altstartdate - 1.5 AS 'Subtract Date';
Here is the result set:
Subtract Date
-----------------------
1900-01-08 15:00:00.000
(1 row(s) affected)
Examples: Azure Synapse Analytics and Analytics Platform System (PDW)
C: Using subtraction in a SELECT statement
The following example calculates the difference in a base rate between the employee with the highest base rate and the employee with the lowest tax rate, from the dimEmployee
table.
-- Uses AdventureWorks
SELECT MAX(BaseRate) - MIN(BaseRate) AS BaseRateDifference
FROM DimEmployee;
See Also
-= (Subtraction Assignment) (Transact-SQL)
Compound Operators (Transact-SQL)
Arithmetic Operators (Transact-SQL)
- (Negative) (Transact-SQL)
Data Types (Transact-SQL)
Expressions (Transact-SQL)
Built-in Functions (Transact-SQL)
SELECT (Transact-SQL)