sql >> Database teknologi >  >> RDS >> Sqlserver

Sådan viser du en dato i amerikansk datoformat i SQL Server (T-SQL)

I SQL Server kan du bruge T-SQL FORMAT() funktion for at vise en dato i det ønskede format. Denne funktion accepterer et valgfrit "kultur"-argument, som du kan bruge til at angive amerikansk datoformat.

Du behøver muligvis ikke bruge dette argument, afhængigt af sproget på din lokale session. Men her er, hvordan du eksplicit angiver amerikansk datoformat.

Eksempel 1 – Kort amerikansk datoformat

For eksplicit at angive, at en dato skal vises i amerikansk engelsk format, skal du bruge en-US som kulturargumentet:

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

Resultat:

+-----------+
| Result    |
|-----------|
| 12/1/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 et amerikansk datoformat, kommer måneden før dagen.

Eksempel 2 – Langt amerikansk datoformat

Hvis jeg ændrer det til et stort D , jeg får et længere format, med dag og måned stavet:

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

Resultat:

+---------------------------+
| Result                    |
|---------------------------|
| Tuesday, December 1, 2020 |
+---------------------------+

Eksempel 3 – Brugerdefineret amerikansk datoformat

Hvis du synes, at ovenstående datoformater er for restriktive, kan du altid angive et brugerdefineret datoformat. For eksempel, hvis du kan lide det forrige eksempel, bortset fra at du foretrækker kun at have de første 3 bogstaver på dagen og måneden, kan du gøre dette:

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

Resultat:

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

Jeg angiver stadig en kultur, selvom jeg angiver præcis, hvor hver date-komponent går hen. Grunden til, at jeg gør dette, er for eksplicit at angive, hvilket sprog der skal bruges. Udeladelse af dette argument kan muligvis forårsage problemer, afhængigt af de sprog, der bruges.

Det gode ved brugerdefinerede datoformater er, at det giver dig en masse fleksibilitet. Du kan skifte komponenter rundt, og de vises præcis, hvor du vil have dem.

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).


  1. Hvordan sender jeg adgangskoden til pg_dump?

  2. Hvordan kan jeg bruge en MySql brugerdefineret variabel i en .NET MySqlCommand?

  3. Android med rum - Sådan indstilles en fremmednøgle til null

  4. Beregn procenter fra SUM() i den samme SELECT sql-forespørgsel