Når du formaterer en dato ved hjælp af FORMAT()
funktion i SQL Server, vil datoen blive formateret i henhold til sproget for din lokale session. Du kan dog tilsidesætte dette ved at angive en kultur, der skal bruges, eller bruge et brugerdefineret datoformat.
Denne artikel viser, hvordan man eksplicit angiver et tysk datoformat ved at bruge det valgfrie "kultur"-argument i FORMAT()
fungere. Det viser også, hvordan du bruger dit eget tilpassede datoformat, hvis det er mere ønskeligt.
Eksempel 1 – Kort tysk datoformat
For eksplicit at angive, at en dato skal vises i tysk format, skal du bruge de-de
som det tredje argument. Dette (valgfri) tredje argument specificerer, hvilken kultur der skal bruges.
DECLARE @thedate date = '2020-12-01' SELECT FORMAT(@thedate, 'd', 'de-de') Result;
Resultat:
+------------+ | Result | |------------| | 01.12.2020 | +------------+
I dette tilfælde brugte jeg et lille d
som det andet argument. Dette resulterer i et relativt kort datoformat, hvor dagen og måneden vises som tal.
Og fordi vi bruger tysk format, kommer dagen før måneden, og hver datokomponent er adskilt af punktum.
Eksempel 2 – Langt tysk datoformat
Du kan ændre det andet argument til et stort D
for at resultere i et længere datoformat med måneden angivet:
DECLARE @thedate date = '2020-12-01' SELECT FORMAT(@thedate, 'D', 'de-de') Result;
Resultat:
+----------------------------+ | Result | |----------------------------| | Dienstag, 1. Dezember 2020 | +----------------------------+
Eksempel 3 – Brugerdefineret tysk datoformat
Du kan også bruge et brugerdefineret datoformat, hvis det kræves. Dette giver dig mulighed for eksplicit at angive præcis, hvordan og hvor hver datokomponent går hen.
Eksempel:
DECLARE @thedate date = '2020-12-01' SELECT FORMAT(@thedate, 'ddd, d. MMM, yyyy', 'de-de') Result;
Resultat:
+------------------+ | Result | |------------------| | Di, 1. Dez, 2020 | +------------------+
I dette tilfælde bruger jeg stadig kulturargumentet til eksplicit at specificere, hvilket sprog der skal bruges.
Mit system bruger i øjeblikket amerikansk engelsk, så hvis jeg udelader kulturargumentet fra dette eksempel, får jeg følgende:
DECLARE @thedate date = '2020-12-01' SELECT FORMAT(@thedate, 'ddd, d. MMM, yyyy') Result;
Resultat:
+-------------------+ | Result | |-------------------| | Tue, 1. Dec, 2020 | +-------------------+
Tjekker din aktuelle session
Når du bruger FORMAT()
funktion, hvis kulturargumentet ikke er angivet, bruges sproget for den aktuelle session. Dette sprog indstilles enten implicit eller eksplicit ved at bruge SET LANGUAGE
erklæring.
For mere information, her er 3 måder at få sproget for den aktuelle session i SQL Server (T-SQL).
Se også Sådan indstilles det aktuelle sprog i SQL Server (T-SQL).