В этом уроке вы узнаете, как использовать функцию SQL Serer EOMONTH() для получения последнего дня месяца указанной даты.
Обзор SQL Server EOMONTH()
Функция EOMONTH() возвращает последний день месяца указанной даты с необязательным смещением.
Ниже показан синтаксис функции EOMONTH():
EOMONTH(start_date [, offset] );
Функция EOMONTH() принимает два аргумента:
- start_date — это выражение даты, которое вычисляется как дата. Функция EOMONTH() возвращает последний день месяца для этой даты.
- offset — это целое число, указывающее количество месяцев, которое необходимо добавить к start_date.
Если в результате сложения offset и start_date получается недействительная дата, функция EOMONTH() выдаст ошибку.
Примеры SQL Server EOMONTH()
Давайте рассмотрим несколько примеров использования функции EOMONTH().
A) Использование функции EOMONTH() для даты
В этом примере функция EOMONTH() используется для возврата последнего дня месяца для даты 2019-02-15:
SELECT EOMONTH('2019-02-15') end_of_month_feb2019;
Вот что получилось:
end_of_month_feb2019 -------------------- 2019-02-28 (1 row affected)
Если передать функцию EOMONTH() дату високосного года, она все равно вернет правильный результат:
SELECT EOMONTH('2020-02-09') end_of_month_feb2020;
Вывод:
end_of_month_feb2020 -------------------- 2020-02-29 (1 row affected)
Как ясно видно из выходных данных, последний день февраля 2020 года — 29-е, а не 28-е число.
Б) Использование функции EOMONTH() для получения количества дней в указанном месяце
Чтобы узнать количество дней в указанном месяце, выполните следующие действия:
- Сначала используйте функцию EOMONTH(), чтобы получить последний день месяца.
- Затем передайте последний день месяца в функцию DAY().
В этом примере возвращается количество дней в феврале 2018 года:
SELECT DAY(EOMONTH('2020-02-09')) days;
Вот что получилось:
days ----------- 29
Чтобы получить количество дней в текущем месяце, используйте следующий оператор:
SELECT DAY(EOMONTH(GETDATE()));
C) Пример использования EOMONTH() со смещением
В следующем примере используется функция EOMONTH() со смещением в 2 месяца:
SELECT EOMONTH('2019-02-15', 2) eomonth_next_2_months;
Вывод следующий:
eomonth_next_2_months --------------------- 2019-04-30 (1 row affected)
В этом руководстве вы узнали, как использовать функцию SQL Server EOMONTH() для получения последнего дня месяца указанной даты.