Найти даты для определенного дня для данного года и месяца + Sql Server 2005 - PullRequest
2 голосов
/ 24 февраля 2010

Учитывая месяц и год, как мне узнать даты одного дня в этом месяце.

например. Данный месяц = ​​февраль, год = 2010. Мне нужно найти даты воскресенья в месяце

Ожидаемый результат:

07/02/2010
14/02/2010
21/02/2010
28/02/2010

Как это сделать?

1 Ответ

2 голосов
/ 24 февраля 2010

Посмотрите на что-то вроде

DECLARE @Month VARCHAR(3),
        @Year INT

SELECT  @Month = 'Feb',
        @Year = 2010

DECLARE @RunDate DATETIME

SELECT @RunDate = '01 ' + @Month + CAST(@Year AS VARCHAR(4))

;WITH DATES AS(
        SELECT  @RunDate DateVal,
                DATENAME(dw, @RunDate) DateNameVal
        UNION ALL
        SELECT  DateVal + 1,
                DATENAME(dw, DateVal + 1)
        FROM Dates
        WHERE DATEPART(month,DateVal) = DATEPART(month,DateVal + 1)
)
SELECT  *
FROM    DATES
WHERE   DateNameVal = 'Sunday'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...