Пожалуйста, дайте мне знать, как я могу найти, если это воскресенье по данной дате?Поиск дня в T-SQL
EDIT:
Из ответов другое дело приходит на ум: Как найти то, что это первый день недели?
Пожалуйста, дайте мне знать, как я могу найти, если это воскресенье по данной дате?Поиск дня в T-SQL
EDIT:
Из ответов другое дело приходит на ум: Как найти то, что это первый день недели?
Используйте функцию "datename":
print datename(weekday, '11/29/2009')
или с переменной:
declare @date smalldatetime
set @date = '12/25/2008'
select datename(weekday, @date)
SELECT DATEPART(dw,theDateRow) AS dateOfWeek FROM someTable
с.в. означает день недели
если с.в. = 0, это воскресенье.
dw = 0 это воскресенье не обязательно верно, это зависит от того, что вы установили как DATEFIRST (http://msdn.microsoft.com/en-us/library/ms181598.aspx) – kristian
A) воскресенье Проверить
SELECT
CASE WHEN DATENAME(WEEKDAY, GETDATE()) != 'Sunday'
Then 'It is ' + CAST(DATENAME(WEEKDAY, GETDATE()) AS VARCHAR(10))
Else 'It is ' + CAST(DATENAME(WEEKDAY, GETDATE()) AS VARCHAR(10))
END 'Day is'
Выход:
Day is
It is Saturday
B) Найти первый день недели
SELECT
DayName = DATENAME(WEEKDAY,
DATEADD(DD, 1 - DATEPART(DW, CONVERT(VARCHAR(10), GETDATE(), 111)),
CONVERT(VARCHAR(10), GETDATE(), 111))),
Date = DATEADD(DD,
1 - DATEPART(DW, CONVERT(VARCHAR(10), GETDATE(), 111)),
CONVERT(VARCHAR(10), GETDATE(), 111))
Выход:
DayName Date
Sunday 2009-12-27 00:00:00.000
Чтобы найти то, что это первый день недели вы используете:
print @@ datefirst
Это вернет число от 1 до 7, где 1 = понедельник, 2 = вторник ... 7 = воскресенье. Вы можете изменить то, что считается первым днем недели (на SQL, например) с помощью:
набор DATEFIRST = 1
Это установит первый день в понедельник. По умолчанию для SQL установлено значение 7 (воскресенье) в США.
См. Ссылку MSDN для Функция DATENAME - http://msdn.microsoft.com/en-us/library/ms174395.aspx – kristian