Я пытаюсь получить название дня, как пятница, суббота, воскресенье, понедельник и т.д. С заданной даты. Я знаю, что есть встроенная функция, которая возвращает название дня, например:
SELECT DATENAME(dw,'09/23/2013') as theDayName
этот запрос SQL возвращает:
"Понедельник"
Это все хорошо. Но я бы хотел пройти Month, Day and Year
индивидуально.
Я использую встроенную функцию DATEPART для извлечения месяца, дня и года из даты, чтобы я мог передать ее в функцию DATENAME:
SELECT DATEPART(m, GETDATE()) as theMonth -- returns 11
SELECT DATEPART(d, GETDATE()) as theDay -- returns 20
SELECT DATEPART(yy, GETDATE()) as theYear -- returns 2013
Теперь, когда у меня есть значения "Месяц", "День" и "Год", я передаю их своему DATENAME
, чтобы получить Weekname
нужной мне даты:
--my SQL query to return dayName
SELECT (DATENAME(dw, DATEPART(m, GETDATE())/DATEPART(d, myDateCol1)/ DATEPART(yy, getdate()))) as myNameOfDay, FirstName, LastName FROM myTable
Это возвращает неправильное название дня. Я попытался заменить/на - чтобы в функции DATENAME мой SQL-запрос стал следующим:
SELECT DATENAME(dw,'09/23/2013')
--becomes
SELECT DATENAME(dw,'09-23-2013')
но он все еще возвращает неправильное имя дня из моего запроса SQL. Я что-то здесь упускаю.
Пожалуйста, порекомендуйте.