Поделиться через


EOMONTH (Transact-SQL)

Возвращает последний день месяца, содержащего указанную дату, с необязательным смещением.

Значок ссылки на раздел Cинтаксические обозначения в Transact-SQL

Применимо для следующих объектов: SQL Server (SQL Server 2012 по текущую версию), База данных SQL Windows Azure (С первоначального выпуска по текущий выпуск).

Синтаксис

EOMONTH ( start_date [, month_to_add ] )

Аргументы

  • start_date
    Выражение даты, задающее дату, для которой необходимо возвратить последний день месяца.

  • month_to_add
    Необязательное целочисленное выражение, задающее количество месяцев, добавляемых к параметру start_date.

    Если этот аргумент указан, то EOMONTH добавляет указанное число месяцев к значению start_date и возвращает последний день месяца, соответствующего полученной дате. Если при таком сложении происходит выход за пределы допустимого диапазона дат, возникает ошибка.

Возвращаемый тип

date

Замечания

Данная функция может быть удаленной для серверов SQL Server 2012 и более поздних версий. Она не может быть удаленной для серверов с версией ниже SQL Server 2012.

Примеры.

А.EOMONTH с явным типом datetime

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

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

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

(1 row(s) affected)

Б.EOMONTH со строковым параметром и неявным преобразованием

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

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

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

(1 row(s) affected)

В.Функция EOMONTH с параметром month_to_add и без него

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)