Я пытаюсь получить имя дня, например, пятница, суббота, воскресенье, понедельник и т. Д. С определенной даты. Я знаю, что есть встроенная функция, которая возвращает название дня, например:Получить имя дня недели от заданной даты в SQL Server
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')
, но она по-прежнему возвращает неправильный DAYNAME из моего SQL запроса. Я что-то упустил.
Прошу совета.
Обратите внимание на 'выберите @@ DATEFIRST', который set 'SET DATEFIRST 7;' – SQLMason