sql >> Database >  >> RDS >> Sqlserver

5 manieren om de naam van de korte maand van een datum in SQL Server te krijgen

Soms moet u, wanneer u met SQL Server (of een ander DBMS) werkt, de korte naam voor een maand retourneren. Hiermee bedoel ik de 3-letterige afkorting van een maand. U hebt bijvoorbeeld "Dec" nodig in plaats van "December".

Hier zijn vier manieren waarop u de naam van de verkorte maand kunt extraheren uit een datum in SQL Server.

De FORMAT()-functie

De FORMAT() functie is beschikbaar sinds SQL Server 2012, en het is de meest beknopte manier om de maand als een 3-letterige afkorting terug te geven.

Hier is een voorbeeld van hoe het werkt:

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

Resultaat:

FORMAT
------
Jan   

De eerste regel declareert eenvoudig een variabele en wijst er een datum aan toe. De tweede regel is waar we de naam van de korte maand vanaf de datum retourneren.

De functies CAST() en DATENAME()

Met deze optie wordt de datum weergegeven als CHAR(3) , waardoor alle tekens die op de eerste drie volgen worden afgesneden.

Hier is een voorbeeld:

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

Resultaat:

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

De functies LEFT() en DATENAME()

Deze optie is gelijk aan de vorige, behalve dat het de LEFT() . gebruikt functie om de 3 meest linkse karakters van de datum te nemen.

Voorbeeld:

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

Resultaat:

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

De functies LEFT() en CONVERT()

Deze optie converteert de datum naar varchar en neemt vervolgens de eerste drie tekens over.

Voorbeeld:

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

Resultaat:

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

In dit voorbeeld is de 100 argument stijlt de datum zodat deze de volgende notatie heeft:mon dd yyyy hh:miAM (of PM) . Dus in ons geval is de datum gestileerd als 1 januari 2000 12:00AM .

Vanaf daar is het gewoon een kwestie van de eerste drie letters wegknippen met de LEFT() functie.

De functies LEFT() en MONTHNAME()

Deze optie gebruikt de MONTHNAME() ODBC scalaire functie om de naam van de maand te retourneren. En net als bij de vorige twee voorbeelden, extraheren we gewoon de eerste drie letters van die maandnaam.

Voorbeeld:

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

Resultaat:

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


  1. Primaire sleutels retourneren van een gekoppelde server in SQL Server (T-SQL-voorbeelden)

  2. Twee rijen samenvoegen tot één terwijl u null-waarden vervangt

  3. OLE DB-provider 'Microsoft.Jet.OLEDB.4.0' kan niet worden gebruikt voor gedistribueerde zoekopdrachten

  4. Hoe kan ik een String[]-parameter instellen op een native query?