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