EOMONTH (Transact-SQL)

適用対象:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)

この関数は、オプションのオフセットを使用して、指定された日付を含んでいる月の最後の日付を返します。

ヒント

DATETRUNC を使用して、月の始まりを計算できます。

Transact-SQL 構文表記規則

構文

EOMONTH ( start_date [ , month_to_add ] )

Note

SQL Server 2014 (12.x) 以前のバージョンの Transact-SQL 構文を確認するには、以前のバージョンのドキュメントを参照してください。

引数

start_date

月の最終日を返す日付を指定する日付の式。

month_to_add

start_date に追加する月数を指定する省略可能な整数式。

month_to_add 引数に値が指定されると、EOMONTH は指定された月数を start_date に追加し、結果として生成された月の最終日を返します。 この加算が有効な日付範囲をオーバーフローした場合は、 EOMONTH エラーが発生します。

戻り値の型

date

解説

この関数は EOMONTH 、SQL Server 2012 (11.x) 以降のバージョンを実行しているインスタンスにリモート接続できます。 SQL Server 2012 (11.x) より前のバージョンのインスタンスにリモート接続することはできません。

A. 明示的な datetime 型を使用する EOMONTH

DECLARE @date DATETIME = '12/1/2022';
SELECT EOMONTH ( @date ) AS Result;
GO

結果セットは次のようになります。

Result
------------
2022-12-31

(1 row(s) affected)

B. 文字列パラメーターと暗黙的な変換を使用する EOMONTH

DECLARE @date VARCHAR(255) = '12/1/2022';
SELECT EOMONTH ( @date ) AS Result;
GO

結果セットは次のようになります。

Result
------------
2022-12-31

(1 row(s) affected)

C. month_to_add パラメーターを使用する EOMONTH と使用しない EOMONTH

これらの結果セットに示されている値は、12/01/2022 から 12/31/2022 の実行日を含む期間を反映します。

DECLARE @date DATETIME = GETDATE();
SELECT EOMONTH ( @date ) AS 'This Month';
SELECT EOMONTH ( @date, 1 ) AS 'Next Month';
SELECT EOMONTH ( @date, -1 ) AS 'Last Month';
GO

結果セットは次のようになります。

This Month
-----------------------
2022-12-31

(1 row(s) affected)

Next Month
-----------------------
2022-01-31

(1 row(s) affected)

Last Month
-----------------------
2022-11-30

(1 row(s) affected)