Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

MONTH() Exemplos no SQL Server (T-SQL)


No SQL Server, você pode usar o comando MONTH() função para retornar a parte “mês” de uma data. Isso é retornado como um número inteiro (não o nome do mês).

Abaixo estão exemplos de como usar esta função.


Sintaxe


A sintaxe fica assim:
MONTH ( date )

Onde date é uma expressão que resolve para um dos seguintes tipos de dados:
  • data
  • datahora
  • deslocamento de data e hora
  • datahora2
  • pequena data e hora
  • hora

Pode ser uma expressão de coluna, expressão, literal de string ou variável definida pelo usuário.

Exemplo


Veja um exemplo básico de como funciona:
SELECT 
   SYSDATETIME() AS 'Date',
   MONTH(SYSDATETIME()) AS 'Month';

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

Portanto, o MONTH() função conseguiu extrair o mês do datetime2 valor (que foi retornado pelo SYSDATETIME() função).

Data fornecida como um literal de string


Aqui está um exemplo em que a data é fornecida como uma string literal.
SELECT MONTH('2019-01-07') AS Result;

Resultado:
+----------+
| Result   |
|----------|
| 1        |
+----------+

E aqui está um exemplo em que a data é fornecida em um formato diferente:
SELECT MONTH('07/01/2017') AS Result;

Resultado:
+----------+
| Result   |
|----------|
| 7        |
+----------+

No entanto, geralmente é melhor evitar o uso de datas nesses formatos. Se você precisar fazer isso, precisará estar atento às configurações de idioma e/ou às configurações de formato de data da sessão atual.

Configurações de idioma


A saída do exemplo anterior dependerá das configurações de idioma e/ou configurações de formato de data da sessão atual.

Quando configuramos o idioma, o formato de data é configurado implicitamente ao mesmo tempo.

Veja o que acontece quando fornecemos o mesmo argumento de data em dois ambientes de linguagem diferentes.

Britânico

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

Resultado:
+----------+
| Result   |
|----------|
| 1        |
+----------+

br_inglês

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

Resultado:
+----------+
| Result   |
|----------|
| 7        |
+----------+

Configurações de formato de data


As configurações de formato de data podem substituir as configurações de idioma, portanto, você também precisa estar ciente dessa configuração. Por exemplo, poderíamos estar usando us_English para nosso idioma (que tem um formato de data padrão de mdy ), mas poderíamos substituir o formato de data para dmy .

Aqui está um exemplo:

us_English – Formato de data padrão


Aqui, definimos o idioma como us_English , que define implicitamente o formato de data como myy .
SET LANGUAGE us_English;
SELECT MONTH('07/01/2017') AS Result;

Resultado:
+----------+
| Result   |
|----------|
| 7        |
+----------+

us_English – Substituir formato de data


Aqui, definimos o idioma para us_English (que define implicitamente o formato de data), mas então definimos explicitamente o formato de data como dmy . Isso substitui o formato de data que foi definido implicitamente quando definimos o idioma.
SET LANGUAGE us_English;
SET DATEFORMAT dmy;
SELECT MONTH('07/01/2017') AS Result;

Resultado:
+----------+
| Result   |
|----------|
| 1        |
+----------+

Retorne o nome do mês


Se você precisar retornar o nome do mês (em vez do número do mês), consulte 3 maneiras de obter o nome do mês de uma data no SQL Server.