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

Konverter et månedsnummer til månedsnavnet i SQL Server (T-SQL)

Du kan bruge T-SQL-koden nedenfor til at konvertere et månedsnummer til dets tilsvarende navn i SQL Server.

Dette er til tidspunkter, hvor du faktisk ikke har den fulde dato - hvor alt du har er månedsnummeret. Hvis du gør har datoen, så er her hvordan du får månedsnavnet fra en dato.

Eksempel

Du kan få månedsnavnet fra dets tilsvarende nummer ved at bruge DATENAME() funktion sammen med DATEADD() .

Her er et eksempel, der bruger måned 10 (oktober):

SELECT DATENAME( 
    month, 
    DATEADD( month , 10, -1 )
    ); 

Resultat:

Oktober

Forklaring af koden

Hvis du undrer dig over, hvorfor der er en -1 i ovenstående kode er det fordi basisdatoen er 1900-01-01 (nå, 1900-01-01 00:00:00.000 for at være præcis).

Hvis vi lægger 10 til 01, så får vi 11, hvilket er november (den forkerte måned). Derfor skal vi trække det fra med 1.

Det følgende eksempel skulle illustrere dette bedre end mine ord. Her er forskellige DATEADD() værdier, der returneres, afhængigt af hvad jeg bruger som det tredje argument.

SELECT DATEADD( month, 0, 0 ) AS [Base Date], DATEADD( month, 10, 0 ) AS [Add 10], DATEADD( month, 10, -1 ) AS [Subtract 1];

Resultat:

 +------------------------+-------------------- -----+-------------------------+ | Basisdato | Tilføj 10 | Træk 1 fra | |------------------------+----------------------- --+-------------------------| | 1900-01-01 00:00:00.000 | 1900-11-01 00:00:00.000 | 1900-10-31 00:00:00.000 | +------------------------+----------------------- --+-------------------------+ 

Så den tredje mulighed giver os det korrekte månedsnummer, og det er så et simpelt spørgsmål om at bruge DATENAME() for at konvertere det til månedens navn.

Et alternativ:FORMAT()

Hvis du ikke kan lide DATENAME() funktion, kan du bytte den til FORMAT() funktion i stedet for. Det samme koncept gælder.

SELECT FORMAT( 
    DATEADD( month , 10, -1 ),
    'MMMM'
    ); 

Resultat:

Oktober

  1. Tilføjelse af en identitet til en eksisterende kolonne

  2. Data fra oracle i utf-8 med php

  3. Importer data fra Excel-regneark eller CVS til MySQL

  4. MySQL PÅ DUPLIKAT NØGLE - sidste indsættelses-id?