Na serveru SQL Server můžete použít DAY()
funkce pro vrácení části data „den“. Tato funkce vrací celé číslo, které představuje den v měsíci (nikoli den v týdnu).
Níže jsou uvedeny příklady použití této funkce.
Syntaxe
Syntaxe vypadá takto:
DAY ( 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', DAY(SYSDATETIME()) AS 'Day';
Výsledek:
+-----------------------------+-------+ | Date | Day | |-----------------------------+-------| | 2018-06-18 00:20:22.1284540 | 18 | +-----------------------------+-------+
Takže DAY()
funkce byla schopna extrahovat den 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 DAY('2019-01-07') AS Result;
Výsledek:
+----------+ | Result | |----------| | 7 | +----------+
A zde je příklad, kdy je datum uvedeno v jiném formátu:
SELECT DAY('07/01/2017') AS Result;
Výsledek:
+----------+ | Result | |----------| | 1 | +----------+
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 DAY('07/01/2017') AS Result;
Výsledek:
+----------+ | Result | |----------| | 7 | +----------+
us_Angličtina
SET LANGUAGE us_English; SELECT DAY('07/01/2017') AS Result;
Výsledek:
+----------+ | Result | |----------| | 1 | +----------+
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 DAY('07/01/2017') AS Result;
Výsledek:
+----------+ | Result | |----------| | 1 | +----------+
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 DAY('07/01/2017') AS Result;
Výsledek:
+----------+ | Result | |----------| | 7 | +----------+
Vraťte název dne
Pokud potřebujete vrátit název dne (na rozdíl od čísla dne), přečtěte si 3 způsoby, jak získat název dne z data na serveru SQL.