sql >> Database >  >> RDS >> Sqlserver

Hoe een datum in Duits formaat weer te geven in SQL Server (T-SQL)

Bij het opmaken van een datum met de FORMAT() functie in SQL Server, wordt de datum opgemaakt volgens de taal van uw lokale sessie. U kunt dit echter overschrijven door een cultuur op te geven die u wilt gebruiken of door een aangepaste datumnotatie te gebruiken.

Dit artikel laat zien hoe u expliciet een Duitse datumnotatie specificeert met behulp van het optionele "culture" -argument van de FORMAT() functie. Het laat ook zien hoe u uw eigen aangepaste datumnotatie kunt gebruiken als dat wenselijker is.

Voorbeeld 1 – Korte Duitse datumnotatie

Gebruik de-de . om expliciet te specificeren dat een datum in Duits formaat moet worden weergegeven als derde argument. Dit (optionele) derde argument geeft aan welke cultuur moet worden gebruikt.

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

Resultaat:

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

In dit geval gebruikte ik een kleine letter d als tweede argument. Dit resulteert in een relatief korte datumnotatie, waarbij de dag en de maand als getallen worden weergegeven.

En omdat we de Duitse notatie gebruiken, komt de dag vóór de maand en wordt elke datumcomponent gescheiden door punten.

Voorbeeld 2 – Lange Duitse datumnotatie

U kunt het tweede argument wijzigen in een hoofdletter D om te resulteren in een langere datumnotatie, met de maand gespeld:

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

Resultaat:

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

Voorbeeld 3 – Aangepast Duits datumformaat

U kunt indien nodig ook een aangepaste datumnotatie gebruiken. Hiermee kunt u expliciet aangeven hoe en waar elke datumcomponent naartoe gaat.

Voorbeeld:

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

Resultaat:

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

In dit geval gebruik ik nog steeds het cultuurargument om expliciet aan te geven welke taal moet worden gebruikt.

Mijn systeem gebruikt momenteel Amerikaans Engels, dus als ik het cultuurargument uit dit voorbeeld weglaat, krijg ik het volgende:

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

Resultaat:

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

Uw huidige sessie controleren

Bij gebruik van de FORMAT() functie, als het cultuurargument niet is opgegeven, wordt de taal van de huidige sessie gebruikt. Deze taal wordt ofwel impliciet, ofwel expliciet ingesteld met behulp van de SET LANGUAGE verklaring.

Voor meer informatie vindt u hier 3 manieren om de taal van de huidige sessie in SQL Server (T-SQL) te krijgen.

Zie ook Hoe u de huidige taal in SQL Server (T-SQL) instelt.


  1. PostgreSQL 12:Implementatie van K-Nearest Neighbor Space gepartitioneerde algemene zoekboomindexen

  2. SQL CASE:ken en vermijd 3 minder bekende problemen

  3. Call for papers voor PGDay.IT 2011 is verlengd

  4. Toegang krijgen tot de database van een applicatie vanuit een andere applicatie