月の英語名を取得する

月の
 ・英語名(省略無し)
 ・英語名(省略あり)
を取得する方法を記載します!

例えば3月ならば、
 ・March(=省略無し)
 ・Mar(=省略あり)
を取得できます

SQL Serverを日本語でインストールした場合、
月の英語名を取得するにはひと工夫が必要です!

PR

事前確認(言語設定の確認)

以下のSQLで「言語設定」を確認できます。

DECLARE
	@langid AS SQL_VARIANT

--現在の言語のlangidを取得
SET @langid = (SELECT value FROM sys.configurations WHERE name='default language')

--現在の使用言語の確認
SELECT
	name 
FROM
	sys.syslanguages
WHERE
	langid = @langid


私の環境で上記を実行すると、言語設定が「日本語」であることを確認できました。


以降は、言語設定が「日本語」であること前提として記載します。

PR

SQL(月の英語名を取得)

ここでは例として、本日日付(=2021/03/31)の
 ・月の英語名(省略無し)
 ・月の英語名(省略あり)
を取得するSQLを記載します。

DECLARE
	@targetDate as DATE

--日付を設定 ※ここでは例として本日日付を設定
SET @targetDate = GETDATE()

--言語設定を「英語」へ変更
SET LANGUAGE us_english

--月の英語名(省略無し)
SELECT DATENAME(month, @targetDate) AS '月の英語名(省略無し)'

--月の英語名(省略あり)
SELECT LEFT(DATENAME(month, @targetDate),3) AS '月の英語名(省略あり)'

--言語設定を「日本語」へ変更 ※元に戻す
SET LANGUAGE japanese

月の英語名を取得する前に、言語設定を「英語」へ変更します。

「DATENAME関数」によって、「月の英語名(省略無し)」を取得します。
※言語設定が「日本語」の場合、「月の名前」ではなく「月の数字」が取得されます。

「月の英語名(省略無し)」の「左から3文字」を取得することで、
「月の英語名(省略あり)」を取得します。

最後に言語設定を「日本語」へ変更します(元に戻します)。

SQL Serverを「英語」でインストールしている場合は、言語設定の変更は不要です

PR

実行結果

月の英語名を取得できました。

PR

参考

上記で使用した以下の詳細については、公式サイトをご確認ください。

●DATENAME関数


●SET LANGUAGE

タイトルとURLをコピーしました