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

Příklady MONTH() v SQL Server (T-SQL)

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.


  1. Upgrade na PostgreSQL 11 s logickou replikací

  2. Návrh datového modelu pro systém rezervace hotelových pokojů

  3. Jak funguje funkce to_number() v PostgreSQL

  4. Jak Sinh() funguje v PostgreSQL