Na serveru SQL Server můžete použít MONTH()
funkce pro vrácení části data „měsíc“. Toto je vráceno jako celé číslo (nikoli název měsíce).
Níže jsou uvedeny příklady použití této funkce.
Syntaxe
Syntaxe vypadá takto:
MONTH ( date )
Kde date
je výraz, který rozlišuje jeden z následujících datových typů:
- datum
- datum a čas
- datetimeoffset
- datetime2
- smalldatetime
- čas
Může to být sloupcový výraz, výraz, řetězcový literál nebo uživatelem definovaná proměnná.
Příklad
Zde je základní příklad toho, jak to funguje:
SELECT SYSDATETIME() AS 'Date', MONTH(SYSDATETIME()) AS 'Month';
Výsledek:
+-----------------------------+---------+ | Date | Month | |-----------------------------+---------| | 2018-06-18 00:39:06.7954314 | 6 | +-----------------------------+---------+
Tedy MONTH()
funkce byla schopna extrahovat měsíc z datetime2 hodnota (která byla vrácena funkcí SYSDATETIME()
funkce).
Datum poskytnuté jako řetězcový literál
Zde je příklad, kdy je datum uvedeno jako řetězcový literál.
SELECT MONTH('2019-01-07') AS Result;
Výsledek:
+----------+ | Result | |----------| | 1 | +----------+
A zde je příklad, kdy je datum uvedeno v jiném formátu:
SELECT MONTH('07/01/2017') AS Result;
Výsledek:
+----------+ | Result | |----------| | 7 | +----------+
Obvykle je však lepší nepoužívat data v takových formátech. Pokud to musíte udělat, musíte mít na paměti nastavení jazyka a/nebo nastavení formátu data aktuální relace.
Nastavení jazyka
Výstup z předchozího příkladu bude záviset na nastavení jazyka a/nebo nastavení formátu data aktuální relace.
Když nastavíme jazyk, zároveň se implicitně nastaví formát data.
Zde je to, co se stane, když poskytneme stejný argument data ve dvou různých jazykových prostředích.
Britové
SET LANGUAGE British; SELECT MONTH('07/01/2017') AS Result;
Výsledek:
+----------+ | Result | |----------| | 1 | +----------+
us_Angličtina
SET LANGUAGE us_English; SELECT MONTH('07/01/2017') AS Result;
Výsledek:
+----------+ | Result | |----------| | 7 | +----------+
Nastavení formátu data
Nastavení formátu data může přepsat nastavení jazyka, takže si také musíte být vědomi tohoto nastavení. Mohli bychom například používat us_English pro náš jazyk (který má výchozí formát data mdy ), ale mohli bychom přepsat formát data na dmy .
Zde je příklad:
us_English – Výchozí formát data
Zde nastavíme jazyk na us_English , která implicitně nastavuje formát data na myy .
SET LANGUAGE us_English; SELECT MONTH('07/01/2017') AS Result;
Výsledek:
+----------+ | Result | |----------| | 7 | +----------+
us_English – Přepsat formát data
Zde nastavíme jazyk na us_English (což implicitně nastavuje formát data), ale pak explicitně nastavíme formát data na dmy . Toto přepíše formát data, který byl implicitně nastaven při nastavování jazyka.
SET LANGUAGE us_English; SET DATEFORMAT dmy; SELECT MONTH('07/01/2017') AS Result;
Výsledek:
+----------+ | Result | |----------| | 1 | +----------+
Vraťte název měsíce
Pokud potřebujete vrátit název měsíce (na rozdíl od čísla měsíce), přečtěte si 3 způsoby, jak získat název měsíce z data na serveru SQL.