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

5 måder at få det korte månedsnavn fra en dato i SQL Server

Nogle gange, når du arbejder med SQL Server (eller ethvert andet DBMS for den sags skyld), skal du returnere det korte navn i en måned. Med dette mener jeg en måneds forkortelse på 3 bogstaver. For eksempel skal du bruge "Dec" i stedet for "December".

Her er fire måder, hvorpå du kan udtrække det forkortede månedsnavn fra en dato i SQL Server.

FORMAT()-funktionen

FORMAT() Funktionen har været tilgængelig siden SQL Server 2012, og det er den mest kortfattede måde at returnere måneden som en forkortelse på 3 bogstaver.

Her er et eksempel på, hvordan det virker:

DECLARE @date datetime2 = '2000-01-01';
SELECT FORMAT(@date, 'MMM') AS 'FORMAT';

Resultat:

FORMAT
------
Jan   

Den første linje erklærer blot en variabel og tildeler den en dato. Den anden linje er, hvor vi returnerer det korte månedsnavn fra datoen.

CAST() og DATENAME() funktionerne

Denne indstilling kaster datoen som CHAR(3) , og derved afskære alle tegn, der følger efter de første tre.

Her er et eksempel:

DECLARE @date datetime2 = '2000-01-01';
SELECT CAST(DATENAME(month, @date) AS CHAR(3)) AS 'CAST/DATENAME';

Resultat:

CAST/DATENAME
-------------
Jan          

LEFT() og DATENAME() funktionerne

Denne indstilling ligner den forrige, bortset fra at den bruger LEFT() funktion til at tage de 3 tegn længst til venstre fra datoen.

Eksempel:

DECLARE @date datetime2 = '2000-01-01';
SELECT LEFT(DATENAME(month, @date), 3) AS 'LEFT/DATENAME';

Resultat:

LEFT/DATENAME
-------------
Jan          

LEFT() og CONVERT() funktionerne

Denne mulighed konverterer datoen til varchar og tager derefter de første tre tegn.

Eksempel:

DECLARE @date datetime2 = '2000-01-01';
SELECT LEFT(CONVERT(varchar, @date, 100), 3) AS 'LEFT/CONVERT';

Resultat:

LEFT/CONVERT
------------
Jan         

I dette eksempel er 100 argument stiler datoen, så den er i følgende format:man dd åååå hh:miAM (eller PM) . Så i vores tilfælde er datoen stilet som 1. jan. 2000 kl. 12.00 .

Derfra er det blot et spørgsmål om at klippe de første tre bogstaver af med LEFT() funktion.

Funktionerne LEFT() og MONTHNAME()

Denne mulighed bruger MONTHNAME() ODBC skalar funktion til at returnere månedens navn. Og som med de to foregående eksempler udtrækker vi simpelthen de første tre bogstaver i det månedsnavn.

Eksempel:

DECLARE @date datetime2 = '2000-01-01';
SELECT LEFT({fn MONTHNAME(@date)}, 3) AS 'LEFT/MONTHNAME';

Resultat:

LEFT/MONTHNAME
--------------
Jan               


  1. Sådan opbevarer du bedst brugeroplysninger og brugerlogin og adgangskode

  2. Mysql eller/og forrang?

  3. Skrivning i ExcelSheet ved hjælp af UTL_FILE-pakken i Oracle

  4. Sådan genereres automatisk stigningsfelt i udvalgt forespørgsel