sql >> Database >  >> RDS >> Sqlserver

3 manieren om de naam van de maand uit een datum te halen in SQL Server (T-SQL)

Wanneer u SQL Server gebruikt, hebt u een paar verschillende opties wanneer u de maandnaam van een datum moet retourneren met T-SQL. Op maandnaam heb ik het niet over het maandnummer (zoals 07 ). Ik heb het over de volledige naam van de maand (zoals juli ).

Bijvoorbeeld, wanneer een datum wordt gegeven van 2018-07-01 , wil je juli te retourneren.

Dit artikel presenteert drie manieren om de naam van de maand te retourneren vanaf een datum in SQL Server met behulp van T-SQL.

De FORMAT()-functie

De FORMAT() functie retourneert een waarde die is opgemaakt in de opgegeven indeling en optionele cultuur. U kunt het gebruiken om de naam van de maand van een datum te retourneren.

Hier is een voorbeeld:

DECLARE @date datetime2 = '2018-07-01';
SELECT FORMAT(@date, 'MMMM') AS Result;

Resultaat:

+----------+
| Result   |
|----------|
| July     |
+----------+

In dit geval hebben we een notatiereeks van MMMM . gegeven dat is een aangepaste tekenreeks voor datum- en tijdnotatie voor het retourneren van de maandnaam.

Het goede aan de FORMAT() functie is dat het een optioneel argument accepteert waarmee je de te gebruiken cultuur kunt specificeren.

Hier zijn enkele voorbeelden:

DECLARE @date datetime2 = '2018-07-01';
SELECT 
    FORMAT(@date, 'MMMM', 'en-US') AS 'en-US',
    FORMAT(@date, 'MMMM', 'es-es') AS 'es-es',
    FORMAT(@date, 'MMMM', 'de-de') AS 'de-de',
    FORMAT(@date, 'MMMM', 'zh-cn') AS 'zh-cn';

Resultaat:

+---------+---------+---------+---------+
| en-US   | es-es   | de-de   | zh-cn   |
|---------+---------+---------+---------|
| July    | julio   | Juli    | 七月    |
+---------+---------+---------+---------+

Als u het cultuurargument niet opgeeft, wordt de taal van de huidige sessie gebruikt. Als je niet zeker weet welke taal de huidige sessie gebruikt, zijn hier 3 manieren om de taal van de huidige sessie te krijgen. Als u merkt dat u de taal moet wijzigen, kunt u deze als volgt instellen op een andere taal.

U kunt ook de FORMAT() . gebruiken functie om de afgekorte naam van de maand te krijgen. Gebruik hiervoor gewoon MMM (drie M s in plaats van vier).

Hier is een voorbeeld dat zowel de afgekorte maandnaam als de volledige maandnaam retourneert:

DECLARE @date datetime2(0) = '2028-09-01';
SELECT 
    FORMAT(@date, 'MMM', 'en-US') 'en-US',
    FORMAT(@date, 'MMM', 'es-es') 'es-es',
    FORMAT(@date, 'MMM', 'it') 'it'
UNION ALL
SELECT 
    FORMAT(@date, 'MMMM', 'en-US'),
    FORMAT(@date, 'MMMM', 'es-es'),
    FORMAT(@date, 'MMMM', 'it');

Resultaat:

+-----------+------------+-----------+
| en-US     | es-es      | it        |
|-----------+------------+-----------|
| Sep       | sep.       | set       |
| September | septiembre | settembre |
+-----------+------------+-----------+

Dit is slechts een van de vele manieren om de naam van de afgekorte maand van een datum te krijgen (hoewel deze methode misschien wel de beste is). Er zijn nog minstens vier manieren waarop u de naam van de afgekorte maand van een datum kunt teruggeven.

De DATENAME() Functie

De DATENAME() functie is vergelijkbaar met de DATEPART() functie, behalve dat het de naam . teruggeeft van het gespecificeerde datumgedeelte (maar alleen waar een naam van toepassing is). Dat betekent dat het de naam van de weekdag of de naam van de maand retourneert als dat is wat je nodig hebt.

Zo krijgt u de naam van de maand met deze functie:

DECLARE @date datetime2 = '2018-07-01';
SELECT DATENAME(month, @date) AS Result;

Resultaat:

+----------+
| Result   |
|----------|
| July     |
+----------+

De MONTHNAME() ODBC scalaire functie

Er is een ODBC scalaire functie speciaal voor het retourneren van de maandnaam van een datum. De naam is MONTHNAME() , en het gaat als volgt:

DECLARE @date datetime2 = '2018-07-01';
SELECT {fn MONTHNAME(@date)} AS Result;

Resultaat:

+----------+
| Result   |
|----------|
| July     |
+----------+

Bij gebruik van ODBC scalaire functies in T-SQL, worden ze omgeven door accolades ({} ) en de functienaam wordt voorafgegaan door fn .

Als u de naam van de korte maand nodig heeft, raadpleegt u 5 manieren om de naam van de korte maand te halen uit een datum in SQL Server.


  1. SQLite Inner Join

  2. Het verschil tussen een JDBC-verklaring en een voorbereide verklaring

  3. Kennismaken met de mogelijkheden en functies in MariaDB SkySQL

  4. PostgreSQL-lijstweergaven