2011-04-13 3 views
71

SQL Server 2008을 사용하여보기를 만드는 데 사용되는 쿼리가 있는데 정수 대신 월 이름을 표시하려고합니다.SQL Server 쿼리에서 월 이름 반환

내 데이터베이스에서 datetime은 OrderDateTime이라는 열에 있습니다. 날짜를 반환하는 쿼리의 줄은 다음과 같습니다.

DATENAME(yyyy, S0.OrderDateTime) AS OrderYear, 
DATEPART(MONTH, S0.OrderDateTime) AS OrderMonth 

이렇게하면 연도 열과 월 열이 정수로 반환됩니다. 월 이름 (1 월, 2 월 등)을 반환하고 싶습니다. 나는 시도했다 :

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

"AS '근처의"잘못된 구문 "메시지가 표시되면서 분명히 올바르지 않습니다. 내 쿼리에 적합한 구문은 무엇입니까?

+8

잘못된 구문 메시지 인'AS' 전에 최종 브래킷을 폐쇄하지로 인해 -'CONVERT (VARCHAR (3), DATEPART (MONTH, S0 .OrderDateTime)) AS OrderMonth' – Jaymz

+0

SQL 쿼리에서 S0 의미는 무엇입니까 – user7157710

+0

@ user7157710 S0는 필드가있는 테이블에 지정된 별칭입니다. – tia97

답변

128

이렇게하면 전체 이름이 표시됩니다.

select datename(month, S0.OrderDateTime) 

만이

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

코멘트가 [대답] (http://stackoverflow.com/a/40592863/5292302)에 잘못 게시되었습니다. "SQL 쿼리에서 S0 의미는 무엇입니까?" by [user7157710] (http://stackoverflow.com/users/7157710/user7157710) –

+1

S0는 테이블의 별칭입니다. 대답은 질문에서 끝납니다. – Bpainter

12

변경 사용할 수있는 첫 세 글자하려면 다음

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

사람 :

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

나는 당신이'DATENAME'을 의미한다고 생각합니다. 'DATEPART'는 그것을하지 않을 것입니다. – Druid

16

당신이 DATENAME(MONTH, S0.OrderDateTime)를 시도를?

1

이 유가 요청하는 무엇을 줄 것이다 SQL 서버에서

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

선택 SUBSTRING (convert(varchar,S0.OrderDateTime,100),1,3)을 :

6

이 시도하여 테이블 이름에서

select convert(varchar(3),datename(month, S0.OrderDateTime)) 
2

2012 사용할 수 있습니다 FORMAT(@mydate, 'MMMM') AS MonthName

1
SELECT MONTHNAME(`col1`) FROM `table_name` 
0

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 
0

은 ...

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) 
관련 문제