Îmbunătățiri de dată și numere

Finalizat

SQL Server 2025 introduce mai multe îmbunătățiri ale funcțiilor numerice și de dată care simplifică logica bazată pe timp și calculele agregate.
Aceste actualizări simplifică dezvoltarea de zi cu zi, ajută la evitarea problemelor de conversie și fac lucrul cu datele și valorile numerice mai practic în scenariile de analiză și raportare.

Prezentare generală a îmbunătățirilor numerice și de dată

CURRENT_DATE

O nouă funcție scalară care returnează data curentă fără o componentă de timp.
Servește ca o alternativă mai simplă și CAST(GETDATE() AS DATE) se aliniază cu standardul ISO SQL.

DATEADD cu suport bigint

Funcția DATEADD acceptă acum tipul de date pentru parametrul bigint său de interval, permițând dezvoltatorilor să adauge un număr mare de unități la o dată fără probleme de depășire sau conversie.
Această îmbunătățire este utilă în special pentru calculele sau simulările de serii de timp care implică durate lungi.

Funcția agregată PRODUCT()

Noua PRODUCT() funcție agregată înmulțește toate valorile numerice non-NULL dintr-un grup.
Completează SUM() și AVG() permițând agregarea multiplicativă, de exemplu, calcularea ratelor de creștere compuse, a factorilor de scalare sau a probabilităților în mai multe etape.

Invocare REST externă cu sp_invoke_external_rest_endpoint

SQL Server 2025 adaugă procedura sp_invoke_external_rest_endpointde sistem , permițând T-SQL să apeleze direct API-uri REST externe. Acest lucru permite integrarea cu surse de date sau servicii externe fără a părăsi motorul bazei de date.

Exemplul 1: Utilizarea CURRENT_DATE pentru o logică de dată mai simplă

Înainte de SQL Server 2025, preluarea datei de astăzi necesita o expresie precum CAST(GETDATE() AS DATE). Acum, îl puteți obține direct cu CURRENT_DATE.

Interogare: Preluați data curentă

SELECT CURRENT_DATE AS TodayDate;

Rezultat

AstăziData
2025-10-14

Această comandă elimină conversiile de tip inutile și îmbunătățește lizibilitatea în interogări și proceduri stocate.

Exemplul 2: Adăugarea unor intervale mari de timp cu DATEADD(bigint)

În versiunile anterioare, DATEADD accepta doar int valori pentru parametrul său de interval, care limita calculele de dată pentru seturi de date mari.
SQL Server 2025 acceptă bigintacum , permițând manipulări de date la scară largă.

Interogare: Simularea datelor viitoare pe perioade lungi

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;

Rezultate

TeCenturyFuture Minute înainte
3025-10-10 2044-02-12 10:40:00

Această funcție permite un control precis pentru prognoze pe termen lung, simulări de timp sau calcule de programare care depășesc limitele întregi anterioare.

Exemplul 3: Calcularea creșterii compuse cu PRODUCT()

Funcția PRODUCT() agregată simplifică calcularea multiplicatorilor cumulativi.
De exemplu, în finanțe sau analiză, poate reprezenta rate de creștere compuse sau factori de scalare totali.

Interogare: Calculați creșterea lunară compusă

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;

Rezultat

CompoundGrowth
1.0404

În acest exemplu, PRODUCT() înmulțește toate valorile ratei pentru a produce un singur rezultat compus.
Poate fi combinat cu GROUP BY pentru a calcula rezultatele în mai multe entități sau perioade de timp.

Exemplul 4: Combinarea tuturor celor trei caracteristici

Următoarea interogare demonstrează toate caracteristicile noi împreună într-un scenariu de raportare.
Calculează creșterea estimată a stocurilor în timp folosind data de astăzi ca bază

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;

Rezultat

ID depozit Dată De început Proiecție de cinci ani CompoundGrowth
101 2025-10-14 2030-10-13 1.2185
102 2025-10-14 2030-10-13 1.1052

Această interogare demonstrează cum CURRENT_DATE, DATEADD(bigint)și PRODUCT() colaborați pentru a sprijini fluxurile de lucru de analiză și planificare în SQL Server 2025.

Rezumat

SQL Server 2025 îmbunătățește gestionarea datelor și a numerelor cu o sintaxă mai simplă și o mai mare flexibilitate de calcul.
CURRENT_DATE oferă o modalitate clară de a prelua data de astăzi, DATEADD(bigint) extinde suportul pentru intervale mari și PRODUCT() adaugă o nouă metodă puternică de agregare.
Împreună, aceste îmbunătățiri fac T-SQL mai expresiv, mai consistent și mai capabil pentru sarcinile de lucru moderne de afaceri și științifice.