Îmbunătățiri de dată și numere
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.