sql >> Database >  >> RDS >> Sqlserver

Converteer een maandnaam naar het maandnummer in SQL Server (T-SQL)

In SQL Server kunt u de MONTH() . gebruiken functie om de naam van een maand om te zetten in het bijbehorende nummer.

Voorbeeld

Hier is een voorbeeld van het omzetten van een maandnaam in het maandnummer.

SELECT MONTH('September' + '1,1');

Resultaat:

9

Wat ik hier doe, is in feite een "datum" verzinnen (die mijn opgegeven maand omvat), zodat SQL Server geen fout genereert bij het gebruik van de MONTH() functie zonder een geldige datum.

Deze functie accepteert elke uitdrukking die kan worden omgezet in een tijd , datum , smalldatetime , datumtijd , datetime2 , of datetimeoffset waarde. Het kan een uitdrukking, kolomuitdrukking, door de gebruiker gedefinieerde variabele of letterlijke tekenreeks zijn.

Meer "Date-Like"

Je zou ook een meer "datum-achtig" argument kunnen geven door zoiets als dit te doen:

SELECT MONTH('September' + ' 01, 1900');

Resultaat:

9

Huidige dag en jaar

Of als u liever de huidige dag en het jaar gebruikt, kunt u zoiets als dit doen:

SELECT MONTH('September' + FORMAT(GETDATE(), 'd,y'));

Resultaat:

9

Voor alle duidelijkheid:tenzij de opgegeven maand dezelfde is als de huidige maand, krijg je een andere datum dan de huidige datum.

Hier is een voorbeeld om te illustreren wat ik bedoel:

SELECT 
  FORMAT(GETDATE(), 'MMMM d, yyyy') AS [Today],
  'September' + FORMAT(GETDATE(), ' d, yyyy') AS [Modified],
  MONTH('September' + FORMAT(GETDATE(), ' d, yyyy')) AS [Month Number];

Resultaat:

 +----------------+--------------------+----------------+
 | Today          | Modified           | Month Number   |
 |----------------+--------------------+----------------|
 | March 22, 2020 | September 22, 2020 | 9              |
 +----------------+--------------------+----------------+ 

Ik heb deze zoekopdracht uitgevoerd op 22 maart 2020, maar de wijzigingsdatum is 22 september 2020.

Hoe dan ook, het juiste maandnummer wordt geretourneerd wanneer we MONTH() . gebruiken .


  1. Dynamisch PHP-object maken op basis van string

  2. Kerstmis komt vroeg (Oracle 12.2)

  3. Hoe krijg ik UTF-8 werkend in Java-webapps?

  4. Een database-e-mailaccount (SSMS) verwijderen