Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

MONTH() Przykłady w SQL Server (T-SQL)

W SQL Server możesz użyć MONTH() funkcja zwracająca „miesiąc” część daty. Jest to zwracane jako liczba całkowita (nie nazwa miesiąca).

Poniżej znajdują się przykłady korzystania z tej funkcji.

Składnia

Składnia wygląda tak:

MONTH ( date )

Gdzie date to wyrażenie, które rozwiązuje jeden z następujących typów danych:

  • data
  • data i godzina
  • przesunięcie daty i godziny
  • datagodzina2
  • smalldatetime
  • czas

Może to być wyrażenie kolumnowe, wyrażenie, literał ciągu lub zmienna zdefiniowana przez użytkownika.

Przykład

Oto podstawowy przykład tego, jak to działa:

SELECT 
   SYSDATETIME() AS 'Date',
   MONTH(SYSDATETIME()) AS 'Month';

Wynik:

+-----------------------------+---------+
| Date                        | Month   |
|-----------------------------+---------|
| 2018-06-18 00:39:06.7954314 | 6       |
+-----------------------------+---------+

Więc MONTH() funkcja mogła wyodrębnić miesiąc z datetime2 wartość (która została zwrócona przez SYSDATETIME() funkcja).

Data podana jako literał ciągu

Oto przykład, w którym data jest podana jako literał ciągu.

SELECT MONTH('2019-01-07') AS Result;

Wynik:

+----------+
| Result   |
|----------|
| 1        |
+----------+

A oto przykład, w którym data jest podana w innym formacie:

SELECT MONTH('07/01/2017') AS Result;

Wynik:

+----------+
| Result   |
|----------|
| 7        |
+----------+

Jednak zazwyczaj najlepiej jest unikać używania dat w takich formatach. Jeśli musisz to zrobić, musisz pamiętać o ustawieniach języka i/lub ustawieniach formatu daty bieżącej sesji.

Ustawienia języka

Wynik poprzedniego przykładu będzie zależał od ustawień języka i/lub ustawień formatu daty w bieżącej sesji.

Kiedy ustawiamy język, format daty jest domyślnie ustawiany w tym samym czasie.

Oto, co się dzieje, gdy dostarczamy ten sam argument daty w dwóch różnych środowiskach językowych.

Brytyjski

SET LANGUAGE British;
SELECT MONTH('07/01/2017') AS Result;

Wynik:

+----------+
| Result   |
|----------|
| 1        |
+----------+

us_angielski

SET LANGUAGE us_English;
SELECT MONTH('07/01/2017') AS Result;

Wynik:

+----------+
| Result   |
|----------|
| 7        |
+----------+

Ustawienia formatu daty

Ustawienia formatu daty mogą zastąpić ustawienia języka, więc musisz również pamiętać o tym ustawieniu. Na przykład możemy używać języka us_angielski dla naszego języka (który ma domyślny format daty mdy ), ale możemy zmienić format daty na dmy .

Oto przykład:

us_English – Domyślny format daty

Tutaj ustawiamy język na us_English , który pośrednio ustawia format daty na myy .

SET LANGUAGE us_English;
SELECT MONTH('07/01/2017') AS Result;

Wynik:

+----------+
| Result   |
|----------|
| 7        |
+----------+

us_English – Zastąp format daty

Tutaj ustawiamy język na us_English (co pośrednio ustawia format daty), ale potem jawnie ustawiamy format daty na dmy . Zastępuje to format daty, który został domyślnie ustawiony podczas ustawiania języka.

SET LANGUAGE us_English;
SET DATEFORMAT dmy;
SELECT MONTH('07/01/2017') AS Result;

Wynik:

+----------+
| Result   |
|----------|
| 1        |
+----------+

Zwróć nazwę miesiąca

Jeśli musisz zwrócić nazwę miesiąca (w przeciwieństwie do numeru miesiąca), zobacz 3 sposoby uzyskania nazwy miesiąca z daty w SQL Server.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Wielowątkowa aplikacja C# z wywołaniami bazy danych SQL Server

  2. Zmień priorytet konta w profilu poczty bazy danych (SSMS)

  3. SQL Server 2016:Utwórz relację

  4. Jak wyłączyć wszystkie ograniczenia sprawdzania w bazie danych SQL Server — samouczek SQL Server / TSQL, część 87

  5. Jak zainstalować SQL Server w SUSE 12?