Datum- och numeriska förbättringar
SQL Server 2025 introducerar flera förbättringar av datum- och numeriska funktioner som förenklar tidsbaserad logik och aggregerade beräkningar.
De här uppdateringarna förenklar den dagliga utvecklingen, hjälper till att undvika konverteringsproblem och gör det mer praktiskt att arbeta med datum och numeriska värden i analys- och rapporteringsscenarier.
Översikt över förbättringar av datum och numeriska värden
CURRENT_DATE
En ny skalär funktion som returnerar det aktuella datumet utan en tidskomponent.
Det fungerar som ett enklare alternativ till CAST(GETDATE() AS DATE) och överensstämmer med ISO SQL-standarden.
DATEADD med bigint-stöd
Funktionen DATEADD stöder bigint nu datatypen för dess intervallparameter, vilket gör att utvecklare kan lägga till ett stort antal enheter till ett datum utan spill eller konverteringsproblem.
Den här förbättringen är särskilt användbar för tidsserieberäkningar eller simuleringar som omfattar långa varaktigheter.
Mängdfunktion för PRODUCT()
Den nya PRODUCT() mängdfunktionen multiplicerar alla numeriska värden som inte är NULL i en grupp.
Den kompletterar SUM() och AVG() genom att tillåta multiplikativ aggregering, till exempel beräkning av sammansatta tillväxthastigheter, skalningsfaktorer eller sannolikheter i flera steg.
Extern REST-anrop med sp_invoke_external_rest_endpoint
SQL Server 2025 lägger till systemproceduren sp_invoke_external_rest_endpointså att T-SQL kan anropa externa REST-API:er direkt. Detta möjliggör integrering med externa datakällor eller tjänster utan att lämna databasmotorn.
Exempel 1: Använda CURRENT_DATE för enklare datumlogik
Innan SQL Server 2025 krävdes ett uttryck som CAST(GETDATE() AS DATE) för att hämta dagens datum. Nu kan du hämta den direkt med CURRENT_DATE.
Fråga: Hämta aktuellt datum
SELECT CURRENT_DATE AS TodayDate;
Result
| TodayDate |
|---|
| 2025-10-14 |
Det här kommandot eliminerar onödiga typkonverteringar och förbättrar läsbarheten i frågor och lagrade procedurer.
Exempel 2: Lägga till stora tidsintervall med DATEADD(bigint)
I tidigare versioner DATEADD accepterades endast int värden för dess intervallparameter, som begränsade datumberäkningar för stora datamängder.
SQL Server 2025 stöder bigintnu , vilket möjliggör storskaliga datummanipuleringar.
Fråga: Simulera framtida datum under långa perioder
DECLARE @StartDate DATE = '2025-01-01';
SELECT
DATEADD(DAY, CAST(365000 AS bigint), @StartDate) AS TenCenturyFuture,
DATEADD(MINUTE, CAST(10000000 AS bigint), @StartDate) AS MinutesAhead;
Results
| TenCenturyFuture | MinutesAhead |
|---|---|
| 3025-10-10 | 2044-02-12 10:40:00 |
Den här funktionen ger exakt kontroll för långsiktiga prognoser, tidssimuleringar eller schemaläggningsberäkningar som överskrider tidigare heltalsgränser.
Exempel 3: Beräkna sammansatt tillväxt med PRODUCT()
Aggregeringsfunktionen PRODUCT() förenklar beräkningen av kumulativa multiplikatorer.
I ekonomi eller analys kan det till exempel representera sammansatta tillväxttakter eller totala skalningsfaktorer.
Fråga: Beräkna sammansatt månatlig tillväxt
CREATE TABLE #GrowthRates (Month INT, Rate DECIMAL(6,4));
INSERT INTO #GrowthRates VALUES
(1, 1.0100),
(2, 1.0200),
(3, 0.9950),
(4, 1.0150);
SELECT PRODUCT(Rate) AS CompoundGrowth
FROM #GrowthRates;
Result
| Sammansatt tillväxt |
|---|
| 1.0404 |
I det här exemplet PRODUCT() multipliceras alla hastighetsvärden för att skapa ett enda sammansatt resultat.
Det kan kombineras med GROUP BY för att beräkna resultat mellan flera entiteter eller tidsperioder.
Exempel 4: Kombinera alla tre funktionerna
Följande fråga visar alla nya funktioner tillsammans i ett rapporteringsscenario.
Den beräknar den beräknade lagertillväxten över tid med dagens datum som baslinje.
DECLARE @BaselineDate DATE = CURRENT_DATE;
WITH GrowthCTE AS
(
SELECT WarehouseID, PRODUCT(GrowthFactor) AS CompoundGrowth
FROM InventoryGrowth
GROUP BY WarehouseID
)
SELECT
WarehouseID,
@BaselineDate AS StartDate,
DATEADD(DAY, 365 * 5, @BaselineDate) AS FiveYearProjection,
CompoundGrowth
FROM GrowthCTE;
Result
| WarehouseID | Startdatum | Femårsprognos | Sammansatt tillväxt |
|---|---|---|---|
| 101 | 2025-10-14 | 2030-10-13 | 1.2185 |
| 102 | 2025-10-14 | 2030-10-13 | 1.1052 |
Den här frågan visar hur CURRENT_DATE, DATEADD(bigint)och PRODUCT() arbetar tillsammans för att stödja analys- och planeringsarbetsbelastningar i SQL Server 2025.
Sammanfattning
SQL Server 2025 förbättrar datum- och numerisk hantering med enklare syntax och större beräkningsflexier.
CURRENT_DATE erbjuder ett tydligt sätt att hämta dagens datum, DATEADD(bigint) utökar stödet för stora intervall och PRODUCT() lägger till en kraftfull ny aggregeringsmetod.
Tillsammans gör dessa förbättringar T-SQL mer uttrycksfullt, konsekvent och kapabelt för moderna affärs- och vetenskapliga arbetsbelastningar.