Udostępnij za pomocą


- (Odejmowanie) (Transact-SQL)

Dotyczy:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)Punkt końcowy analizy SQL w usłudze Microsoft FabricHurtownia danych w usłudze Microsoft FabricBaza danych SQL w usłudze Microsoft Fabric

Odejmuje dwie liczby (operator odejmowania arytmetycznego). Może również odjąć liczbę w dniach od daty.

Transact-SQL konwencje składni

Syntax

expression - expression

Arguments

expression

Dowolne prawidłowe wyrażenie dowolnego z typów danych kategorii typu danych liczbowych, z wyjątkiem typu danych bitowych . Nie można używać z typami danych date, time, datetime2 lubdatetimeoffset .

Typy zwracane

Zwraca typ danych argumentu o wyższym pierwszeństwie. Aby uzyskać więcej informacji, zobacz Pierwszeństwo typu danych.

Examples

Przykłady kodu w tym artykule korzystają z przykładowej bazy danych AdventureWorks2025 lub AdventureWorksDW2025, którą można pobrać ze strony głównej Przykładów programu Microsoft SQL Server i projektów społeczności.

A. Używanie odejmowania w instrukcji SELECT

Poniższy przykład oblicza różnicę w stawce podatkowej między stanem lub prowincją z najwyższą stawką podatkową, a stanem lub prowincją o najniższej stawce podatkowej.

Dotyczy: SQL Server i SQL Database.

SELECT MAX(TaxRate) - MIN(TaxRate) AS 'Tax Rate Difference'
FROM Sales.SalesTaxRate
WHERE StateProvinceID IS NOT NULL;
GO

Kolejność wykonywania można zmienić przy użyciu nawiasów. Obliczenia wewnątrz nawiasów są oceniane jako pierwsze. Jeśli nawiasy są zagnieżdżone, pierwszeństwo ma najbardziej zagnieżdżone obliczenie.

B. Używanie odejmowania daty

Poniższy przykład odejmuje kilka dni od daty daty/godziny .

Dotyczy: SQL Server i SQL Database.

DECLARE @altstartdate DATETIME;
SET @altstartdate = CONVERT(DATETIME, 'January 10, 1900 3:00 AM', 101);
SELECT @altstartdate - 1.5 AS 'Subtract Date';

Oto zestaw wyników.

Subtract Date
-----------------------
1900-01-08 15:00:00.000

Przykłady: Azure Synapse Analytics and Analytics Platform System (PDW)

C. Używanie odejmowania w instrukcji SELECT

Poniższy przykład oblicza różnicę w stawce bazowej między pracownikiem z najwyższą stawką bazową a pracownikiem o najniższej stawce podatkowej dimEmployee z tabeli.

SELECT MAX(BaseRate) - MIN(BaseRate) AS BaseRateDifference
FROM DimEmployee;