Aprimoramentos numéricos e de data

Concluído

O SQL Server 2025 apresenta várias melhorias nas funções de data e numérica que simplificam a lógica baseada em tempo e os cálculos agregados.
Essas atualizações simplificam o desenvolvimento diário, ajudam a evitar problemas de conversão e tornam o trabalho com datas e valores numéricos mais prático em cenários de análise e relatórios.

Visão geral dos aprimoramentos numéricos e de data

CURRENT_DATE

Uma nova função escalar que retorna a data atual sem um componente de hora.
Ele serve como uma alternativa mais simples a CAST(GETDATE() AS DATE) e se alinha com o padrão ISO SQL.

DATEADD com suporte bigint

A função DATEADD agora dá suporte ao tipo de dados bigint para seu parâmetro de intervalo, permitindo que os desenvolvedores adicionem um grande número de unidades a uma data sem problemas de estouro ou conversão.
Esse aprimoramento é especialmente útil para cálculos de série temporal ou simulações que envolvem longas durações.

Função de agregação PRODUCT()

A nova PRODUCT() função de agregação multiplica todos os valores numéricos não NULL em um grupo.
Ele complementa SUM() e AVG() permitindo agregação multiplicativa, por exemplo, computando taxas de crescimento compostas, fatores de dimensionamento ou probabilidades de vários estágios.

Invocação REST externa com sp_invoke_external_rest_endpoint

O SQL Server 2025 adiciona o procedimento sp_invoke_external_rest_endpointdo sistema, permitindo que o T-SQL chame as APIs REST externas diretamente. Isso permite a integração com fontes de dados ou serviços externos sem sair do mecanismo de banco de dados.

Exemplo 1: Usando CURRENT_DATE para lógica de data mais simples

Antes do SQL Server 2025, recuperar a data de hoje exigia uma expressão como CAST(GETDATE() AS DATE). Agora, você pode obtê-lo diretamente com CURRENT_DATE.

Consulta: recuperar a data atual

SELECT CURRENT_DATE AS TodayDate;

Resultado

TodayDate
14-10-2025

Esse comando elimina conversões de tipo desnecessárias e melhora a legibilidade em consultas e procedimentos armazenados.

Exemplo 2: adicionando intervalos de tempo grandes com DATEADD(bigint)

Em versões anteriores, DATEADD aceitava apenas int valores para seu parâmetro de intervalo, que limitava os cálculos de data para grandes conjuntos de dados.
O SQL Server 2025 agora suporta bigint, habilitando manipulações de data em grande escala.

Consulta: Simular datas futuras ao longo de longos períodos

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;

Resultados

TenCenturyFuture MinutesAhead
3025-10-10 2044-02-12 10:40:00

Essa função permite um controle preciso para previsões de longo prazo, simulações de tempo ou cálculos de agendamento que excedem os limites inteiros anteriores.

Exemplo 3: Calculando o crescimento composto com PRODUCT()

A PRODUCT() função de agregação simplifica o cálculo de multiplicadores cumulativos.
Por exemplo, em finanças ou análises, ele pode representar taxas de crescimento compostas ou fatores de dimensionamento totais.

Consulta: Computar crescimento mensal composto

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;

Resultado

Crescimento Composto
1.0404

Neste exemplo, PRODUCT() multiplica todos os valores de taxa para produzir um único resultado composto.
Pode ser combinado com GROUP BY para calcular resultados em várias entidades ou períodos de tempo.

Exemplo 4: Combinando todos os três recursos

A consulta a seguir demonstra todos os novos recursos combinados em um contexto de relatório.
Ele calcula o crescimento do inventário projetado ao longo do tempo usando a data de hoje como uma linha de base.

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;

Resultado

WarehouseID Data de Início Projeção de Cinco Anos Crescimento Composto
101 14-10-2025 2030-10-13 1.2185
102 14-10-2025 2030-10-13 1.1052

Esta consulta demonstra como CURRENT_DATE, DATEADD(bigint)e PRODUCT() trabalhar em conjunto para dar suporte a cargas de trabalho de análise e planejamento no SQL Server 2025.

Resumo

O SQL Server 2025 aprimora a manipulação de data e numérica com sintaxe mais simples e maior flexibilidade computacional.
CURRENT_DATE oferece uma maneira clara de recuperar a data de hoje, DATEADD(bigint) expande o suporte para intervalos grandes e PRODUCT() adiciona um novo método de agregação poderoso.
Juntas, essas melhorias tornam o T-SQL mais expressivo, consistente e capaz para cargas de trabalho modernas e científicas.