Melhorias em datas e números
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.