Возвращение название месяца в запросе 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 73

11 ответов:

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

select datename(month, S0.OrderDateTime)

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

select convert(char(3), S0.OrderDateTime, 0)

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

изменения:

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

To:

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

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

SELECT LEFT(DATENAME(MONTH,Getdate()),3)

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

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

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

select convert(varchar(3),datename(month, S0.OrderDateTime)) 
SELECT MONTHNAME( `col1` ) FROM `table_name` 

без удара БД мы можем получить все месяцы имя.

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

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

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)

объявить @iMonth INT=12

выбрать CHOOSE(@iMonth,'JANUARY','FEBRUARY','MARCH','APRIL','MAY','JUNE','JULY','AUGUST','SEPTEMBER','OCTOBER','NOVEMBER','DECEMBER')