SQL Server(またはその他のDBMS)を使用する場合、1か月間短い名前を返す必要がある場合があります。これは、月の3文字の略語を意味します。たとえば、「12月」ではなく「12月」が必要です。
SQLServerの日付から短縮された月の名前を抽出する4つの方法を次に示します。
FORMAT()関数
FORMAT()
関数はSQLServer2012から使用可能であり、3文字の省略形として月を返す最も簡潔な方法です。
仕組みの例を次に示します。
DECLARE @date datetime2 = '2000-01-01'; SELECT FORMAT(@date, 'MMM') AS 'FORMAT';
結果:
FORMAT ------ Jan
最初の行は単に変数を宣言し、それに日付を割り当てます。 2行目は、日付から短い月の名前を返す場所です。
CAST()およびDATENAME()関数
このオプションは、日付をCHAR(3)
としてキャストします 、これにより、最初の3つに続く文字をすべて切り取ります。
次に例を示します:
DECLARE @date datetime2 = '2000-01-01'; SELECT CAST(DATENAME(month, @date) AS CHAR(3)) AS 'CAST/DATENAME';
結果:
CAST/DATENAME ------------- Jan
LEFT()およびDATENAME()関数
このオプションは、LEFT()
を使用することを除いて、前のオプションと似ています。 日付から左端の3文字を取得する関数。
例:
DECLARE @date datetime2 = '2000-01-01'; SELECT LEFT(DATENAME(month, @date), 3) AS 'LEFT/DATENAME';
結果:
LEFT/DATENAME ------------- Jan
LEFT()およびCONVERT()関数
このオプションは、日付をvarcharに変換してから、最初の3文字を取ります。
例:
DECLARE @date datetime2 = '2000-01-01'; SELECT LEFT(CONVERT(varchar, @date, 100), 3) AS 'LEFT/CONVERT';
結果:
LEFT/CONVERT ------------ Jan
この例では、100
引数は、次の形式になるように日付のスタイルを設定します: mon dd yyyy hh:miAM(またはPM) 。したがって、この場合、日付は2000年1月1日12:00AMのようにスタイル設定されます。 。
そこから、LEFT()
で最初の3文字を切り取るだけです。 機能。
LEFT()およびMONTHNAME()関数
このオプションはMONTHNAME()
を使用します 月の名前を返すODBCスカラー関数。また、前の2つの例と同様に、その月の名前の最初の3文字を抽出するだけです。
例:
DECLARE @date datetime2 = '2000-01-01'; SELECT LEFT({fn MONTHNAME(@date)}, 3) AS 'LEFT/MONTHNAME';
結果:
LEFT/MONTHNAME -------------- Jan