2014-10-04 9 views
1

Попытка установить дату в понедельник, а затем заказать результаты в «день недели», начиная с понедельника. К сожалению, кажется, что функция DATEFIRST ничего не делает, и мой вывод продолжает думать, что пятница - это первый день недели.Как правильно использовать функцию SET DATEFIRST в SQL Server?

SET DATEFIRST 1; 

SELECT FirstName, LastName, HireDate, datename(dw,HireDate) AS 'Day of the Week' 
FROM Faculty 
ORDER BY datename(dw,HireDate); 

Код выше производит следующий вывод:

Lynda Baker 1989-09-15 Friday 
Tim Stewart 2000-09-15 Friday 
John Puckett 1989-09-15 Friday 
Maria Lynn Kessler 2003-09-15 Monday 
Leo Dubray 2001-09-15 Saturday 
Jamie Zipay 2001-01-07 Sunday 
Michele Malott 2005-09-15 Thursday 
Robin Schwartz 1999-09-15 Wednesday 

Любой знает, как я могу использовать DATEFIRST или любую другую функцию, которая позволит мне сортировать день недели, начиная с понедельника?

ответ

3

Необходимо заказывать файл DATEPART не DATENAME.

DATEPART возвращает целое число, в зависимости от установки DATEFIRST. DATENAME возвращает строку с днем ​​недели.

Строка «Понедельник» всегда будет появляться после «пятницы», поскольку она сортируется по алфавиту.

+0

Работал. Спасибо. – MrPickles

Смежные вопросы