FORMAT()
を使用して日付をフォーマットする場合 SQL Serverの機能では、日付はローカルセッションの言語に従ってフォーマットされます。ただし、使用するカルチャを指定するか、カスタムの日付形式を使用することで、これを上書きできます。
この記事では、FORMAT()
のオプションの「culture」引数を使用して、ドイツ語の日付形式を明示的に指定する方法を示します。 働き。また、それがより望ましい場合は、独自のカスタム日付形式を使用する方法も示します。
例1-短いドイツ語の日付形式
日付をドイツ語形式で表示するように明示的に指定するには、de-de
を使用します 3番目の引数として。この(オプションの)3番目の引数は、使用するカルチャを指定します。
DECLARE @thedate date = '2020-12-01' SELECT FORMAT(@thedate, 'd', 'de-de') Result;
結果:
+------------+ | Result | |------------| | 01.12.2020 | +------------+
この場合、小文字のd
を使用しました 2番目の引数として。これにより、日付と月が数字で表示される比較的短い日付形式になります。
また、ドイツ語形式を使用しているため、日は月の前になり、各日付コンポーネントはピリオドで区切られます。
例2–長いドイツの日付形式
2番目の引数を大文字のD
に変更できます 月を綴った、より長い日付形式になります:
DECLARE @thedate date = '2020-12-01' SELECT FORMAT(@thedate, 'D', 'de-de') Result;
結果:
+----------------------------+ | Result | |----------------------------| | Dienstag, 1. Dezember 2020 | +----------------------------+
例3–カスタムドイツの日付形式
必要に応じて、カスタムの日付形式を使用することもできます。これにより、各日付コンポーネントがどこにどのように移動するかを明示的に指定できます。
例:
DECLARE @thedate date = '2020-12-01' SELECT FORMAT(@thedate, 'ddd, d. MMM, yyyy', 'de-de') Result;
結果:
+------------------+ | Result | |------------------| | Di, 1. Dez, 2020 | +------------------+
この場合でも、culture引数を使用して、使用する言語を明示的に指定します。
私のシステムは現在アメリカ英語を使用しているので、この例から文化の議論を省略すると、次のようになります。
DECLARE @thedate date = '2020-12-01' SELECT FORMAT(@thedate, 'ddd, d. MMM, yyyy') Result;
結果:
+-------------------+ | Result | |-------------------| | Tue, 1. Dec, 2020 | +-------------------+
現在のセッションを確認する
FORMAT()
を使用する場合 関数では、カルチャ引数が指定されていない場合、現在のセッションの言語が使用されます。この言語は、暗黙的に、またはSET LANGUAGE
を使用して明示的に設定されます。 ステートメント。
詳細については、SQL Server(T-SQL)で現在のセッションの言語を取得する3つの方法を参照してください。
SQL Server(T-SQL)で現在の言語を設定する方法も参照してください。