Как отобразить день с даты

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

Таблица 1

Date

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

Тип данных столбца даты — DATETIME.

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

Monday
Tuesday

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


person Gopal    schedule 20.12.2010    source источник


Ответы (5)


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

SELECT DATENAME(WEEKDAY,[Date])
FROM Table1
person Lamak    schedule 20.12.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).

person Dan J    schedule 20.12.2010

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

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

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

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

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

DateName(dw, [Date])
person John Hartsock    schedule 20.12.2010

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

SET LANGUAGE 'Italian'
SELECT DATENAME(WEEKDAY,GETDATE())
person Dr.Luiji    schedule 23.01.2014

select name from table where weekday(column_name = 'monday');

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

person navya    schedule 12.11.2016
comment
Если вы хотите ответить на вопросы здесь, пожалуйста, научитесь использовать форматирование кода. - person CGritton; 12.11.2016