web-dev-qa-db-ja.com

SQL Serverクエリで月名を返す

SQL Server 2008を使用して、ビューの作成に使用されるクエリがあり、整数の代わりに月の名前を表示しようとしています。

私のデータベースでは、datetimeOrderDateTimeという列にあります。日付を返すクエリの行は次のとおりです。

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」の近くの誤った構文

メッセージ。クエリの適切な構文は何ですか?

76

これにより、月のフルネームが表示されます。

select datename(month, S0.OrderDateTime)

最初の3文字だけが必要な場合は、これを使用できます

select convert(char(3), S0.OrderDateTime, 0)
142
Mikael Eriksson

DATENAME(MONTH, S0.OrderDateTime)を試しましたか?

17
nithins

変化する:

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

に:

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

これを試して:

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

テーブル名からSUBSTRING (convert(varchar,S0.OrderDateTime,100),1,3)を選択します

2
Dilip Chauhan

SQL Server 2012では、FORMAT(@mydate, 'MMMM') AS MonthNameを使用できます

2
Marlon Taborda

これにより、あなたが何をリクエストしているかがわかります:

select convert(varchar(3),datename(month, S0.OrderDateTime)) 
1
Bamidelz
SELECT MONTHNAME( `col1` ) FROM `table_name` 
1
alvin
DECLARE @iMonth INT=12
SELECT CHOOSE(@iMonth,'JANUARY','FEBRUARY','MARCH','APRIL','MAY','JUNE','JULY','AUGUST','SEPTEMBER','OCTOBER','NOVEMBER','DECEMBER')

基本的にこれ...

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)
0
stubs

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
Mou