sql >> Databáze >  >> RDS >> Sqlserver

Převést číslo měsíce na název měsíce v SQL Server (T-SQL)

Níže uvedený kód T-SQL můžete použít k převodu čísla měsíce na odpovídající název na serveru SQL Server.

To platí pro případy, kdy ve skutečnosti nemáte celé datum – kdy jediné, co máte, je číslo měsíce. Pokud uděláte mít datum, pak zde je návod, jak z data získat název měsíce.

Příklad

Název měsíce můžete získat z jeho odpovídajícího čísla pomocí DATENAME() funkce ve spojení s DATEADD() .

Zde je příklad, který používá 10. měsíc (říjen):

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

Výsledek:

October

Vysvětlení kodexu

Pokud vás zajímá, proč je zde -1 ve výše uvedeném kódu je to proto, že základní datum je 1900-01-01 (dobře, 1900-01-01 00:00:00.000, abych byl přesný).

Přičteme-li 10 k 01, dostaneme 11, což je listopad (nesprávný měsíc). Proto ji musíme odečíst o 1.

Následující příklad by to měl ilustrovat lépe než moje slova. Zde jsou různé DATEADD() hodnoty, které jsou vráceny, v závislosti na tom, co použiji jako třetí argument.

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

Výsledek:

 +-------------------------+-------------------------+-------------------------+
 | Base Date               | Add 10                  | Subtract 1              |
 |-------------------------+-------------------------+-------------------------|
 | 1900-01-01 00:00:00.000 | 1900-11-01 00:00:00.000 | 1900-10-31 00:00:00.000 |
 +-------------------------+-------------------------+-------------------------+ 

Takže třetí možnost nám dává správné číslo měsíce a pak je to jednoduchá záležitost použití DATENAME() převést jej na název měsíce.

Alternativa:FORMAT()

Pokud se vám nelíbí DATENAME() funkci, můžete ji vyměnit za FORMAT() místo toho funkci. Platí stejný koncept.

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

Výsledek:

October

  1. Driver.getConnection se zablokuje pomocí ovladače SQLServer a Java 1.6.0_29

  2. Celý proces obnovení databáze SQL Server z příkazového řádku

  3. Ormlite nebo sqlite Který z nich je dobrý pro Android?

  4. Jak funguje SQLite Nullif()