В финансовых отчётах, отчётах по продажам и других, в качестве фильтра часто используется последняя дата текущего месяца. Хорошо бы эту дату подставлять, при вводе параметров, автоматически, чтобы пользователь вводил только значимые для него параметры. К сожалению в MS SQL такая функция отсутствует, поэтому я получал даты последнего дня месяца разными способами.
По мере изучения SQL я пользовался тремя различными способами. Самый первый способ
Без использования функций обработки даты. Заключается в том, что последняя дата месяца легко прогнозируемая величина, зависит от месяца, и для февраля, от того является ли год високосным. В результате получилась такая команда: CONVERT(datetime, CAST(YEAR(GETDATE()) as nchar(4)) + right('00' + cast(month(GETDATE()) as nvarchar(2)),2) +
case
when MONTH(GETDATE()) in (1,3,5,7,8,10,12) then '31'
when MONTH(GETDATE()) in (4,6,9,11) then '30'
when MONTH(GETDATE()) = 2 and year(GETDATE()) % 4 = 0 then '29'
else '