尝试将日期设置为星期一,然后按星期一开始按“星期几”排序结果。不幸的是,似乎DATEFIRST函数没有做任何事情,我的输出继续认为星期五是一周的第一天。
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或任何其他功能来让我从周一开始对星期几进行排序?
答案 0 :(得分:3)
您需要按DATEPART
而不是DATENAME
订购。
DATEPART
返回一个整数,具体取决于DATEFIRST
设置。 DATENAME
返回一个字符串,其中包含星期几。
字符串'Monday'将始终位于'Friday'之后,因为它按字母顺序排序。