Я хочу рассчитать номер недели месяца, я хочу рассчитать номер недели, может ли он получить нечетную или даже неделю, как я могу получить это в TSQL? Спасибо всем!TSQL Рассчитать недельный номер месяца
ответ
Это дает недели с момента @dt в его месяц. Существует 2-ой столбец, который использует саз над выражением, чтобы показать либо «Odd» или «Даже»
declare @dt datetime
set @dt = GETDATE()
select
WhichWeekOfMonth = datepart(wk, @dt)
- datepart(wk,dateadd(m, DATEDIFF(M, 0, @dt), 0)) + 1,
case when (datepart(wk, @dt)
- datepart(wk,dateadd(m, DATEDIFF(M, 0, @dt), 0)) + 1) % 2 = 1
then 'Odd' else 'Even' end
Это отличный Ричард. Можете ли вы также помочь с тем, как мы можем сделать обратное - если месяц и номер недели, можем ли мы получить первую и последнюю даты на этой неделе? – Jinith
Попробуйте это:
SELECT (DATEPART(d, '02/07/2011')/7)%2 AS WeekNo, --Replace your date column in place of '02/07/2011'
CASE (DATEPART(d, '02/07/2011')/7)%2
WHEN 1 THEN 'Odd'
ELSE 'Even'
END AS WeekType
дает неправильный ответ (по моему определению - см мой ответ) - он говорит, что он находится на неделе 1 – RichardTheKiwi
. В приведенном выше вопросе указывается, будет ли для данной даты неделя равной недели или недели недели ... – Chandu
Это даст вам номер недели на каждый месяц
declare @dates datetime
select @dates='2011-03-22'
SELECT datepart(dd,@dates), ceiling (cast(datepart(dd,@dates)as numeric(38,8))/7)
Как о что-то читаемый, легко настраиваемый, и предсказуем ...
DECLARE @dayOfMonth AS INT;
SET @dayOfMonth = DATEPART(DAY, '3/14/2013');
SELECT CASE
WHEN @dayOfMonth < 8 THEN 1
WHEN @dayOfMonth < 15 THEN 2
WHEN @dayOfMonth < 22 THEN 3
ELSE 4
END AS weekOfMonth;
Я думаю, что это делает подход очень очевидное:
DECLARE @DayOne DATETIME
DECLARE @ThisDay DATETIME
SET @ThisDay = GETDATE()
SET @DayOne = CAST(CAST(MONTH(@ThisDay) AS VARCHAR) + '/1/' + CAST(YEAR(@ThisDay) AS VARCHAR) AS DATETIME)
SELECT (DATEPART(wk, @ThisDay) - DATEPART(wk, @DayOne) + 1) AS [Week Of Month]
SQL Server 2012 имеет функцию CONCAT, которая может быть использована для более легко построить строку DayOne:
DECLARE @DayOne DATETIME
DECLARE @ThisDay DATETIME
SET @ThisDay = GETDATE()
SET @DayOne = CAST(CONCAT(MONTH(@ThisDay), '/1/', YEAR(@ThisDay)) AS DATETIME)
SELECT (DATEPART(wk, @ThisDay) - DATEPART(wk, @DayOne) + 1) AS [Week Of Month]
- 1. Недельный номер и Недельный день
- 2. Как рассчитать недельный номер corona sdk?
- 3. Неправильный недельный день месяца?
- 4. Oracle 10g Недельный номер
- 5. Недельный номер Неверный номер в Morris.js
- 6. Как рассчитать недельный permonth в студии данных aqua
- 7. Рассчитать неделю месяца в .NET
- 8. Рассчитать дни месяца
- 9. Tsql выбрать предыдущий 3 месяца
- 10. TSQL номер округления проблема
- 11. Таблица календаря - неделя номер месяца
- 12. python - Неделя номер месяца
- 13. Получить номер месяца от имени месяца?
- 14. Преобразовать номер месяца ИНТ полное имя месяца
- 15. недельный диапазон конкретного месяца года с использованием mysql
- 16. Рассчитать последний день следующего месяца
- 17. Рассчитать последний день следующего месяца
- 18. Рассчитать неделя месяца начиная понедельник
- 19. Как изменить номер месяца на номер?
- 20. Рассчитать недельный и месячный итог в электронной таблице
- 21. Как рассчитать недельный год, основанный на динамическом конце года?
- 22. Как рассчитать реальный номер
- 23. Как рассчитать номер Лукаса?
- 24. Рассчитать номер имени
- 25. Заменить номер с названием месяца
- 26. Номер недели до месяца номера
- 27. vba конвертировать недельный номер (и год) на сегодняшний день?
- 28. Как рассчитать большую комбинаторную сумму в tsql
- 29. Попытка рассчитать суммарную сумму в tsql
- 30. TSQL Рассчитать продолжительность времени между блоками событий
список несколько примеров даты и ожидаемый выход – RichardTheKiwi