日付と数値の機能強化
SQL Server 2025 では、時間ベースのロジックと集計の計算を簡略化する日付関数と数値関数にいくつかの機能強化が導入されています。
これらの更新プログラムは、日常的な開発を簡素化し、変換の問題を回避し、分析とレポートのシナリオでより実用的な日付と数値の操作を行うのに役立ちます。
日付と数値の機能強化の概要
CURRENT_DATE
時刻コンポーネントなしで現在の日付を返す新しいスカラー関数。
これは、 CAST(GETDATE() AS DATE) のより簡単な代替手段として機能し、ISO SQL 標準に準拠しています。
bigint をサポートする DATEADD
DATEADD関数では、interval パラメーターのbigintデータ型がサポートされるようになりました。これにより、開発者はオーバーフローや変換の問題を発生させることなく、多数の単位を日付に追加できます。
この拡張機能は、時系列の計算や、長い期間を伴うシミュレーションに特に役立ちます。
PRODUCT() 集計関数
新しい PRODUCT() 集計関数は、グループ内のすべての NULL 以外の数値を乗算します。
複合成長率、スケーリング 要因、多段階確率の計算など、乗法的な集計を可能にすることで、 SUM() と AVG() を補完します。
sp_invoke_external_rest_endpointを使用した外部REST呼び出し
SQL Server 2025 では、システム プロシージャ sp_invoke_external_rest_endpointが追加され、T-SQL が外部 REST API を直接呼び出せるようにします。 これにより、データベース エンジンを離れることなく、外部データ ソースまたはサービスとの統合が可能になります。
Note
sp_invoke_external_rest_endpointは、SQL Server 2025 では既定で無効になっています。 使用する前に、サーバー レベルのアクセス許可で有効にします。
EXECUTE sp_configure 'external rest endpoint enabled', 1;
RECONFIGURE WITH OVERRIDE;
例 1: 単純な日付ロジックにCURRENT_DATEを使用する
SQL Server 2025 より前では、今日の日付を取得するには、 CAST(GETDATE() AS DATE)のような式が必要です。 これで、 CURRENT_DATEで直接取得できます。
クエリ: 現在の日付を取得する
SELECT CURRENT_DATE AS TodayDate;
結果
| 今日の日付 |
|---|
| 2025-10-14 |
このコマンドは、不要な型変換を排除し、クエリとストアド プロシージャの読みやすさを向上させます。
例 2: DATEADD(bigint) を使用して大きな時間間隔を追加する
以前のバージョンでは、 DATEADD その間隔パラメーターに int 値のみを受け入れ、大規模なデータセットの日付計算が制限されています。
SQL Server 2025 では、 bigintがサポートされ、大規模な日付操作が可能になりました。
クエリ: 長期にわたる将来の日付をシミュレートする
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;
結果
| TenCenturyFuture | MinutesAhead |
|---|---|
| 3025年10月10日 | 2044-02-12 10:40:00 |
この関数を使用すると、以前の整数の制限を超える長期的な予測、時間シミュレーション、またはスケジュール計算を正確に制御できます。
例 3: PRODUCT() を使用した化合物成長の計算
PRODUCT()集計関数は、累積乗数の計算を簡略化します。
たとえば、財務や分析では、複合的な増加率や合計スケーリング要因を表すことができます。
クエリ: 複合月次成長を計算する
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;
結果
| CompoundGrowth |
|---|
| 1.0404 |
この例では、 PRODUCT() はすべてのレート値を乗算して、単一の複合結果を生成します。
GROUP BYと組み合わせて、複数のエンティティまたは期間にわたって結果を計算できます。
例 4: 3 つの機能をすべて組み合わせる
次のクエリは、レポート シナリオのすべての新機能をまとめて示しています。
今日の日付をベースラインとして使用して、時間の経過に伴う予想在庫の増加を計算します。
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;
結果
| WarehouseID | 開始日 | 5年間の予測 | CompoundGrowth |
|---|---|---|---|
| 101 | 2025-10-14 | 2030-10-13 | 1.2185 |
| 102 | 2025-10-14 | 2030-10-13 | 1.1052 |
このクエリでは、SQL Server 2025 での分析と計画のワークロードをサポートするために、 CURRENT_DATE、 DATEADD(bigint)、および PRODUCT() がどのように連携するかを示します。
概要
SQL Server 2025 では、より単純な構文と計算の柔軟性により、日付と数値の処理が強化されます。
CURRENT_DATE は、今日の日付を取得する明確な方法を提供 DATEADD(bigint) 、大きな間隔のサポートを拡張し、 PRODUCT() 強力な新しい集計方法を追加します。
これらの機能強化により、T-SQL は、最新のビジネスワークロードや科学ワークロードに対して、より表現力があり、一貫性があり、機能が向上します。