sql >> Databasteknik >  >> RDS >> Sqlserver

Hur man visar ett datum i tyskt format i SQL Server (T-SQL)

När du formaterar ett datum med FORMAT() funktion i SQL Server, kommer datumet att formateras enligt språket för din lokala session. Du kan dock åsidosätta detta genom att ange en kultur som ska användas eller genom att använda ett anpassat datumformat.

Den här artikeln visar hur man uttryckligen anger ett tyskt datumformat genom att använda det valfria "kultur"-argumentet för FORMAT() fungera. Den visar också hur du använder ditt eget anpassade datumformat om det är mer önskvärt.

Exempel 1 – Kort tyskt datumformat

För att uttryckligen ange att ett datum ska visas i tyskt format, använd de-de som det tredje argumentet. Detta (valfria) tredje argument anger vilken kultur som ska användas.

DECLARE @thedate date = '2020-12-01'
SELECT FORMAT(@thedate, 'd', 'de-de') Result;

Resultat:

+------------+
| Result     |
|------------|
| 01.12.2020 |
+------------+

I det här fallet använde jag en liten d som det andra argumentet. Detta resulterar i ett relativt kort datumformat, där dagen och månaden visas som siffror.

Och eftersom vi använder tyskt format kommer dagen före månaden och varje datumkomponent separeras med punkter.

Exempel 2 – Långt tyskt datumformat

Du kan ändra det andra argumentet till en versal D för att resultera i ett längre datumformat, med månaden utskriven:

DECLARE @thedate date = '2020-12-01'
SELECT FORMAT(@thedate, 'D', 'de-de') Result;

Resultat:

+----------------------------+
| Result                     |
|----------------------------|
| Dienstag, 1. Dezember 2020 |
+----------------------------+

Exempel 3 – Anpassat tyskt datumformat

Du kan också använda ett anpassat datumformat om det behövs. Detta låter dig uttryckligen ange exakt hur och var varje datumkomponent går.

Exempel:

DECLARE @thedate date = '2020-12-01'
SELECT FORMAT(@thedate, 'ddd, d. MMM, yyyy', 'de-de') Result;

Resultat:

+------------------+
| Result           |
|------------------|
| Di, 1. Dez, 2020 |
+------------------+

I det här fallet använder jag fortfarande kulturargumentet för att explicit specificera vilket språk som ska användas.

Mitt system använder för närvarande amerikansk engelska, så om jag utelämnar kulturargumentet från det här exemplet får jag följande:

DECLARE @thedate date = '2020-12-01'
SELECT FORMAT(@thedate, 'ddd, d. MMM, yyyy') Result;

Resultat:

+-------------------+
| Result            |
|-------------------|
| Tue, 1. Dec, 2020 |
+-------------------+

Kontrollera din aktuella session

När du använder FORMAT() funktion, om kulturargumentet inte tillhandahålls används språket för den aktuella sessionen. Detta språk ställs in antingen implicit eller explicit genom att använda SET LANGUAGE uttalande.

För mer information, här är tre sätt att få språket för den aktuella sessionen i SQL Server (T-SQL).

Se även Hur man ställer in det aktuella språket i SQL Server (T-SQL).


  1. Hur man distribuerar PostgreSQL för hög tillgänglighet

  2. JSON_OBJECTAGG() – Skapa ett JSON-objekt från frågeresultat i MySQL

  3. Benchmarking databaser 101 - del 1

  4. Giltiga formatsträngsersättningar för SQLite Strftime()-funktionen