Programing

SQL Server 쿼리에서 월 이름 반환

lottogame 2020. 10. 16. 07:02
반응형

SQL Server 쿼리에서 월 이름 반환


을 사용 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'근처의 잘못된 구문

메시지. 내 쿼리에 적합한 구문은 무엇입니까?


그러면 해당 월의 전체 이름이 표시됩니다.

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

에:

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


이것은 u가 요청하는 것을 제공합니다.

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')

참고 URL : https://stackoverflow.com/questions/5650830/returning-month-name-in-sql-server-query

반응형