Ответ 1
Это даст вам полное имя месяца.
select datename(month, S0.OrderDateTime)
Если вы хотите только первые три буквы, вы можете использовать этот
select convert(char(3), S0.OrderDateTime, 0)
Используя SQL Server 2008
, у меня есть запрос, который используется для создания представления, и я пытаюсь отобразить название месяца вместо целого числа.
В моей базе данных datetime
находится в столбце с именем OrderDateTime
. Строки в запросе, которые возвращают дату:
DATENAME(yyyy, S0.OrderDateTime) AS OrderYear,
DATEPART(MONTH, S0.OrderDateTime) AS OrderMonth
Это возвращает столбец лет и столбец месяцев как целые числа. Я хочу вернуть названия месяцев (Jan, Feb, etc
. (Jan, Feb, etc
). Я пробовал:
CONVERT(varchar(3), DATEPART(MONTH, S0.OrderDateTime) AS OrderMonth
Это явно неверно, так как я получаю
Неверный синтаксис рядом с 'AS'
сообщение. Каков правильный синтаксис для моего запроса?
Это даст вам полное имя месяца.
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`
Без удара db мы можем получить имя месяца.
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)
DECLARE @iMonth INT=12
SELECT CHOOSE(@iMonth,'JANUARY','FEBRUARY','MARCH','APRIL','MAY','JUNE','JULY','AUGUST','SEPTEMBER','OCTOBER','NOVEMBER','DECEMBER')