EOMONTH (Transact-SQL)

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

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

Transact-SQL 構文表記規則

構文

EOMONTH ( start_date [, month_to_add ] )  

Note

SQL Server 2014 以前の 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/2011';  
SELECT EOMONTH ( @date ) AS Result;  
GO  

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

Result  
------------  
2011-12-31  
  
(1 row(s) affected)  

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

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

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

Result  
------------  
2011-12-31  
  
(1 row(s) affected)  

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

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

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  
-----------------------  
2011-12-31  
  
(1 row(s) affected)  
  
Next Month  
-----------------------  
2012-01-31  
  
(1 row(s) affected)  
  
Last Month  
-----------------------  
2011-11-30  
  
(1 row(s) affected)