以下のT-SQLコードを使用して、月番号をSQLServerの対応する名前に変換できます。
これは、実際には完全な日付がない場合、つまり月番号だけがある場合に使用します。 行う場合 日付を入力してから、日付から月の名前を取得する方法を説明します。
例
DATENAME()
を使用すると、対応する番号から月の名前を取得できます。 DATEADD()
と組み合わせて機能する 。
10月(10月)を使用する例を次に示します。
SELECT DATENAME(
month,
DATEADD( month , 10, -1 )
);
結果:
October
コードの説明
なぜ-1
があるのか疑問に思っている場合 上記のコードでは、基準日が1900-01-01(正確には、1900-01-01 00:00:00.000)であるためです。
01に10を加算すると、11になります。これは11月(間違った月)です。したがって、1を引く必要があります。
次の例は、私の言葉よりもこれをよく説明しているはずです。さまざまなDATEADD()
があります 3番目の引数として使用するものに応じて返される値。
SELECT
DATEADD( month, 0, 0 ) AS [Base Date],
DATEADD( month, 10, 0 ) AS [Add 10],
DATEADD( month, 10, -1 ) AS [Subtract 1];
結果:
+-------------------------+-------------------------+-------------------------+ | Base Date | Add 10 | Subtract 1 | |-------------------------+-------------------------+-------------------------| | 1900-01-01 00:00:00.000 | 1900-11-01 00:00:00.000 | 1900-10-31 00:00:00.000 | +-------------------------+-------------------------+-------------------------+
したがって、3番目のオプションは正しい月番号を提供し、DATENAME()
を使用するだけです。 月の名前に変換します。
代替:FORMAT()
DATENAME()
が気に入らない場合 関数の場合、FORMAT()
と交換できます 代わりに機能します。同じ概念が適用されます。
SELECT FORMAT(
DATEADD( month , 10, -1 ),
'MMMM'
);
結果:
October