Как отобразить день с даты - PullRequest
6 голосов
/ 20 декабря 2010

Использование SQL Server 2005

Table1

Date

19-12-2009
20-12-2010
.....

Тип столбца даты - DATETIME.

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

Monday
Tuesday

Как сделать запрос на получение дня ...

Ответы [ 5 ]

18 голосов
/ 20 декабря 2010

Вы можете использовать функцию DATENAME.

SELECT DATENAME(WEEKDAY,[Date])
FROM Table1
10 голосов
/ 20 декабря 2010

Как и предполагал @Lamak, вы можете использовать функцию DATENAME , если вы используете SQL Server 2005 или более позднюю версию:

SELECT DATENAME(dw, DateField) FROM Table

В более ранних версиях самое близкое, что вы могли получить, былофункция DATEPART с dw в качестве интервала, но вам нужен CASE для преобразования числа, возвращаемого в название дня, , как показано здесь .

SELECT CASE DATEPART(dw, DateField)
       WHEN 1 THEN 'Sunday'
       WHEN 2 THEN 'Monday'
       WHEN 3 THEN 'Tuesday'
       WHEN 4 THEN 'Wednesday'
       WHEN 5 THEN 'Thursday'
       WHEN 6 THEN 'Friday'
       WHEN 7 THEN 'Saturday'
       END AS DayOfWeek
FROM Table

Также обратите внимание на замечания в документации MSDN для этих функций даты, чтобы узнать, как указать, какой день недели считается первым днем ​​(зависит от настройки DATEFORMAT вашей среды SQL).

1 голос
/ 20 декабря 2010

Вот ссылка для DateName , которая поможет вам

http://msdn.microsoft.com/en-us/library/ms174395.aspx

Если вам нужна числовая ссылка, например Sunday = 1, Saturday = 7, используйте DatePart

http://msdn.microsoft.com/en-us/library/ms174420.aspx

Это то, что вы хотите

DateName(dw, [Date])
0 голосов
/ 12 ноября 2016
select name from table where weekday(column_name = 'monday');

Он печатает того, кто родился в понедельник, и отображает их имена

0 голосов
/ 23 января 2014

Я хотел бы предложить установить язык до начала дня недели

SET LANGUAGE 'Italian'
SELECT DATENAME(WEEKDAY,GETDATE())
...