Возвращение название месяца в запросе SQL сервер
используя SQL Server 2008
, у меня есть запрос, который используется для создания представления, и я пытаюсь отобразить месяца вместо integer.
в моей базе данных datetime
в рубрике OrderDateTime
. Строки в запросе, возвращающие дату:
DATENAME(yyyy, S0.OrderDateTime) AS OrderYear,
DATEPART(MONTH, S0.OrderDateTime) AS OrderMonth
это возвращает столбец лет и столбец месяцев в виде целых чисел. Я хочу вернуть имена месяцев (Jan, Feb, etc
). Я пробовал:
CONVERT(varchar(3), DATEPART(MONTH, S0.OrderDateTime) AS OrderMonth
это, очевидно, неверно, как я вам
неверный синтаксис рядом с 'AS'
сообщение. Каков правильный синтаксис для моего запроса?
11 ответов:
это даст вам полное название месяца.
select datename(month, S0.OrderDateTime)
Если вы хотите только первые три буквы, вы можете использовать это
select convert(char(3), S0.OrderDateTime, 0)
изменения:
CONVERT(varchar(3), DATEPART(MONTH, S0.OrderDateTime) AS OrderMonth
To:
CONVERT(varchar(3), DATENAME(MONTH, S0.OrderDateTime)) AS OrderMonth
без удара БД мы можем получить все месяцы имя.
WITH CTE_Sample1 AS ( Select 0 as MonthNumber UNION ALL select MonthNumber+1 FROM CTE_Sample1 WHERE MonthNumber+1<12 ) Select DateName( month , DateAdd( month , MonthNumber ,0 ) ) from CTE_Sample1