EOMONTH (Transact-SQL)EOMONTH (Transact-SQL)

ОБЛАСТЬ ПРИМЕНЕНИЯ ЭТОЙ СТАТЬИ:даSQL Server (начиная с версии 2012)даБаза данных SQL AzureдаХранилище данных SQL AzureдаParallel Data WarehouseTHIS TOPIC APPLIES TO:yesSQL Server (starting with 2012)yesAzure SQL DatabaseyesAzure SQL Data Warehouse yesParallel Data Warehouse

Эта функция возвращает последний день месяца, содержащего указанную дату, с необязательным смещением.This function returns the last day of the month containing a specified date, with an optional offset.

Значок ссылки на раздел Синтаксические обозначения в Transact-SQLTopic link icon Transact-SQL Syntax Conventions

СинтаксисSyntax

EOMONTH ( start_date [, month_to_add ] )  

АргументыArguments

start_datestart_date
Выражение даты, задающее дату, для которой необходимо возвратить последний день месяца.A date expression that specifies the date for which to return the last day of the month.

month_to_addmonth_to_add
Необязательное целочисленное выражение, задающее количество месяцев, добавляемых к параметру start_date.An optional integer expression that specifies the number of months to add to start_date.

Если аргумент month_to_add имеет значение, то EOMONTH добавляет указанное число месяцев к значению start_date и возвращает последний день месяца, соответствующего полученной дате.If the month_to_add argument has a value, then EOMONTH adds the specified number of months to start_date, and then returns the last day of the month for the resulting date. Если при таком сложении происходит выход за пределы допустимого диапазона дат, функция EOMONTH вызывает ошибку.If this addition overflows the valid range of dates, then EOMONTH will raise an error.

Тип возвращаемых данныхReturn Type

datedate

RemarksRemarks

Функция EOMONTH поддерживает удаленное взаимодействие с серверами SQL Server 2012 (11.x)SQL Server 2012 (11.x) и более поздних версий.The EOMONTH function can remote to SQL Server 2012 (11.x)SQL Server 2012 (11.x) servers and higher. Она не может быть удаленной для серверов с версией ниже SQL Server 2012 (11.x)SQL Server 2012 (11.x).It cannot be remote to servers with a version lower than SQL Server 2012 (11.x)SQL Server 2012 (11.x).

ПримерыExamples

A.A. EOMONTH с явным типом datetimeEOMONTH with explicit datetime type

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

Ниже приводится результирующий набор.Here is the result set.

Result  
------------  
2011-12-31  

(1 row(s) affected)  

Б.B. EOMONTH со строковым параметром и неявным преобразованиемEOMONTH with string parameter and implicit conversion

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

Ниже приводится результирующий набор.Here is the result set.

Result  
------------  
2011-12-31  

(1 row(s) affected)  

В.C. Функция EOMONTH с параметром month_to_add и без негоEOMONTH with and without the month_to_add parameter

Примечание. Значения в этих результирующих наборах отражают дату выполнения в следующем диапазоне (включительно):Note: the values shown in these result sets reflect an execution date between and including

    12/01/2011

    and

    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  

Ниже приводится результирующий набор.Here is the result set.

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)