Мне нужно получить последний день месяца с вводом месяца и года. Например, с вводом 06/2016 он вернется 30. Я использую SQL Server 2005. Спасибо за любую помощь.Функция получить последний день месяца в sql
ответ
Предположим, что ваш вход в виде VARCHAR
MM/YYYY
.
Используйте RIGHT
и LEFT
, чтобы получить год и месяц соответственно. Затем используйте DATEFROMPARTS
для генерации даты начала. Затем используйте EOMONTH
, чтобы получить последний день месяца. Наконец, воспользуйтесь DAY
, чтобы извлечь часть дня.
DECLARE @input VARCHAR(7) = '06/2016'
SELECT
DAY(
EOMONTH(
DATEFROMPARTS(CAST(RIGHT(@input,4) AS INT),CAST(LEFT(@input, 2) AS INT),1)
)
)
Вышеупомянутое работает только для SQL Server 2012+.
Для SQL Server 2005, вы можете использовать DATEADD
для создания даты:
SELECT
DAY(-- Day part
DATEADD(DAY, -1, -- Last day of the month
DATEADD(MONTH, CAST(LEFT(@input, 2) AS INT), -- Start of next month
DATEADD(YEAR, CAST(RIGHT(@input, 4) AS INT) - 1900, 0) -- Start of the year
)
)
)
Ссылка:
Вы бы сделать что-то вроде этого:
select eomonth(getdate(), 0);
Если вы хотите в формате MM/YYYY, то вы могли бы сделать это:
select format(eomonth(getdate(), 0), 'MM/yyyy');
пардон за бросание в ответ, который не является специфичные для «SQL Server», ни оттуда «2005», но обобщенного способа вычислить ответ, который Вы ищете заключается в следующем:
- ломается вход, который у вас есть, например,
06/2016
, на две части. Вызвать их@MONTH
и@YEAR
. Определите третье значение,@DAY
, равное . - Typecast это значение даты ... «1 июня 2016 года».
- Теперь, используя функции обработки даты, которые у вас есть , обязательно, чтобы «сначала добавить один месяц, а затем вычесть один день».
Одна вещь, которую вы должны быть очень осторожны при разработке кода, как это, чтобы быть уверенным (!), Что ваш код для декодирования 06/2016
работы для каждый (!) значение, которое на самом деле происходит в этой базе данных, или, что на него можно положиться сбой.
попробовать это,
declare @input varchar(20)='06/2016'
set @[email protected]+'/01'
declare @dtinput [email protected]
select dateadd(day,-1,dateadd(month,datediff(month,0,@dtinput)+1,0))
--OR in sql server 2012
select eomonth(@dtinput)
- 1. SQL - Последний день месяца
- 2. Получить последний день месяца в SQL
- 3. Получить последний день месяца с учетом месяца
- 4. Неправильный последний день месяца
- 5. Календарь - Получить последний день месяца
- 6. Получите последний день месяца?
- 7. Как получить последний день месяца
- 8. последний день текущего месяца?
- 9. Как рассчитать последний день месяца в SQL?
- 10. Получить в последний день месяца в строке
- 11. Последний день месяца с H2
- 12. Как получить последний день месяца в postgres?
- 13. Как получить последний день месяца в Какао?
- 14. Как получить последний день месяца в CL
- 15. SQL запрос, чтобы найти последний день месяца
- 16. sql процедура для печати последний день месяца
- 17. Рассчитать последний день следующего месяца
- 18. Как получить первый день и последний день месяца от данного месяца и года в SQL
- 19. Последний день месяца в .NET
- 20. возвращение в последний день месяца
- 21. Java - Как получить последний день недели месяца
- 22. VBA - Access - Получить последний день месяца
- 23. Как я могу получить последний день месяца?
- 24. Как получить последний день каждого месяца?
- 25. Как получить последний день текущего месяца?
- 26. Как получить последний день месяца, используя php
- 27. Получить первый и последний день прошлого месяца
- 28. php получить последний день данного месяца
- 29. Как получить последний день месяца, используя php
- 30. Получить последний день определенного (СЕНТЯБРЯ) месяца
задал bazillion раз уже миллиард способов. Пожалуйста, попробуйте выполнить поиск!~ –
Возможный дубликат [Получить последний день месяца в SQL] (http://stackoverflow.com/questions/1051488/get-the-last-day-of-the-month-in-sql) –