Melhorias em datas e números

Concluído

O SQL Server 2025 introduz várias melhorias nas funções numéricas e de data que simplificam a lógica baseada no 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 tempo.
Serve como uma alternativa mais simples a CAST(GETDATE() AS DATE) e alinha-se com o padrão ISO SQL.

DATEADD com suporte para bigint

A função DATEADD agora suporta o tipo de dados bigint para o seu parâmetro de intervalo, permitindo que os desenvolvedores adicionem um grande número de unidades a uma data sem problemas de sobrecarga ou conversão.
Esta melhoria é especialmente útil para cálculos de séries cronológicas ou simulações que envolvam durações longas.

Função agregada 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() ao permitir a agregação multiplicativa, por exemplo, ao calcular taxas de crescimento compostas, fatores de escala 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 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;

Result

DataDeHoje
2025-10-14

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

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

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

Consulta: Simular datas futuras durante 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;

Results

TenCenturyFuture Minutosà frente
3025-10-10 2044-02-12 10:40:00

Esta função permite um controlo preciso de previsões a longo prazo, simulações de tempo ou cálculos de programação que excedem os limites inteiros anteriores.

Exemplo 3: Calculando o crescimento composto com PRODUCT()

A PRODUCT() função agregada simplifica o cálculo dos multiplicadores cumulativos.
Por exemplo, em finanças ou análises, pode representar taxas de crescimento compostas ou fatores de escala total.

Consulta: Calcular crescimento composto mensal

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

Crescimento composto
1.0404

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

Exemplo 4: Combinando os três recursos

A consulta a seguir demonstra todos os novos recursos integrados num cenário de geração de relatórios.
Ele calcula o crescimento projetado do estoque ao longo do tempo usando a data de hoje como 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;

Result

ID do armazém StartDate Projeção quinquenal Crescimento composto
101 2025-10-14 2030-10-13 1.2185
102 2025-10-14 2030-10-13 1.1052

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

Resumo

O SQL Server 2025 aprimora a manipulação numérica e de data 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 grandes intervalos e PRODUCT() adiciona um novo e poderoso método de agregação.
Juntas, essas melhorias tornam o T-SQL mais expressivo, consistente e capaz para cargas de trabalho empresariais e científicas modernas.