SQL Serverでは、T-SQL FORMAT()
を使用できます 希望の形式で日付を表示する関数。この関数は、オプションの「カルチャ」引数を受け入れます。これを使用して、米国の日付形式を指定できます。
ローカルセッションの言語に応じて、この引数を使用する必要がある場合と使用しない場合があります。ただし、米国の日付形式を明示的に指定する方法は次のとおりです。
例1-短い米国の日付形式
日付を米国英語形式で表示するように明示的に指定するには、en-US
を使用します。 文化の議論として:
DECLARE @thedate date = '2020-12-01' SELECT FORMAT(@thedate, 'd', 'en-US') Result;
結果:
+-----------+ | Result | |-----------| | 12/1/2020 | +-----------+
この場合、小文字のd
を使用しました 2番目の引数として。これにより、日付と月が数字で表示される比較的短い日付形式になります。
また、米国の日付形式を使用しているため、月は日の前になります。
例2–米国の長い日付形式
大文字のD
に変更すると 、日と月が綴られた、より長い形式になります:
DECLARE @thedate date = '2020-12-01' SELECT FORMAT(@thedate, 'D', 'en-US') Result;
結果:
+---------------------------+ | Result | |---------------------------| | Tuesday, December 1, 2020 | +---------------------------+
例3–カスタム米国日付形式
上記の日付形式の制限が厳しすぎる場合は、いつでもカスタムの日付形式を指定できます。たとえば、前の例が気に入った場合、日と月の最初の3文字だけを使用したい場合を除いて、次のようにすることができます。
DECLARE @thedate date = '2020-12-01' SELECT FORMAT(@thedate, 'ddd, MMM d, yyyy', 'en-US') Result;
結果:
+------------------+ | Result | |------------------| | Tue, Dec 1, 2020 | +------------------+
各日付コンポーネントの行き先を正確に指定していても、カルチャを指定します。私がこれを行う理由は、使用する言語を明示的に示すためです。この引数を省略すると、使用されている言語に応じて、問題が発生する場合と発生しない場合があります。
カスタム日付形式の良いところは、柔軟性が高いことです。コンポーネントを切り替えることができ、必要な場所に正確に表示されます。
現在のセッションを確認する
FORMAT()
を使用する場合 関数では、カルチャ引数が指定されていない場合、現在のセッションの言語が使用されます。この言語は、暗黙的に、またはSET LANGUAGE
を使用して明示的に設定されます。 ステートメント。
詳細については、SQL Server(T-SQL)で現在のセッションの言語を取得する3つの方法を参照してください。
SQL Server(T-SQL)で現在の言語を設定する方法も参照してください。