Возвращение названия месяца в запросе к SQL Server - PullRequest
76 голосов
/ 13 апреля 2011

Используя SQL Server 2008, у меня есть запрос, который используется для создания представления, и я пытаюсь показать имя месяца вместо целого числа

В моей базе данных 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 ]

143 голосов
/ 13 апреля 2011

Это даст вам полное название месяца.

select datename(month, S0.OrderDateTime)

Если вам нужны только первые три буквы, вы можете использовать это

select convert(char(3), S0.OrderDateTime, 0)
17 голосов
/ 13 апреля 2011

Вы пробовали DATENAME(MONTH, S0.OrderDateTime)?

12 голосов
/ 13 апреля 2011

Изменение:

CONVERT(varchar(3), DATEPART(MONTH, S0.OrderDateTime) AS OrderMonth

Кому:

CONVERT(varchar(3), DATENAME(MONTH, S0.OrderDateTime)) AS OrderMonth
7 голосов
/ 22 декабря 2014

Попробуйте это:

SELECT LEFT(DATENAME(MONTH,Getdate()),3)
2 голосов
/ 13 октября 2016

В SQL Server 2012 можно использовать FORMAT(@mydate, 'MMMM') AS MonthName

2 голосов
/ 23 июня 2014

Выберите SUBSTRING (convert(varchar,S0.OrderDateTime,100),1,3) из названия вашей таблицы

1 голос
/ 08 декабря 2016
SELECT MONTHNAME( `col1` ) FROM `table_name` 
1 голос
/ 01 марта 2013

Это даст вам то, что вы запрашиваете:

select convert(varchar(3),datename(month, S0.OrderDateTime)) 
0 голосов
/ 31 июля 2018
DECLARE @iMonth INT=12
SELECT CHOOSE(@iMonth,'JANUARY','FEBRUARY','MARCH','APRIL','MAY','JUNE','JULY','AUGUST','SEPTEMBER','OCTOBER','NOVEMBER','DECEMBER')
0 голосов
/ 18 сентября 2017

в основном это ...

declare @currentdate datetime = getdate()
select left(datename(month,DATEADD(MONTH, -1, GETDATE())),3)
union all
select left(datename(month,(DATEADD(MONTH, -2, GETDATE()))),3)
union all
select left(datename(month,(DATEADD(MONTH, -3, GETDATE()))),3)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...