Количество дней в месяце SQL.

Узнать количество дней в месяце в t-SQL можно таким образом:

declare @date datetime = getdate()
declare @dayCount int
set @dayCount = day(dateadd(dd, -day(dateadd(mm, 1, @date)), dateadd(mm, 1, @date)))
select @dayCount

В этом коде количество дней в месяце определяется функцией day от последнего числа месяца. Последнее число месяца в моем случае находится добавлением к текущей дате одного месяца и “вычитанием” от неё дня месяца полученной даты. Начиная с MS SQL 2012ой версии, последнее число можно найти с использованием встроенной функции EOMonth. Т.е. необходимо третью строку в коде выше заменить следующей строкой:

set @dayCount = day(eomonth(@date))

В итоге наша функция будет выглядеть так:

create function [dbo].[monthDayCount]
(@date datetime)
returns int
as
begin
return (day(dateadd(dd, -day(dateadd(mm, 1, @date)), dateadd(mm, 1, @date))))
end

Оставить комментарий

Обязательные поля *

Вы можете использовать следующие HTML теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>