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

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


No SQL Server, você pode usar o comando DAY() função para retornar a parte “dia” de uma data. Esta função retorna um inteiro que representa o dia do mês (não o dia da semana).

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


Sintaxe


A sintaxe fica assim:
DAY ( 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',
   DAY(SYSDATETIME()) AS 'Day';

Resultado:
+-----------------------------+-------+
| Date                        | Day   |
|-----------------------------+-------|
| 2018-06-18 00:20:22.1284540 | 18    |
+-----------------------------+-------+

Portanto, o DAY() função conseguiu extrair o dia 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 DAY('2019-01-07') AS Result;

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

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

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

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 DAY('07/01/2017') AS Result;

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

br_inglês

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

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

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 para us_English , que define implicitamente o formato de data como myy .
SET LANGUAGE us_English;
SELECT DAY('07/01/2017') AS Result;

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

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 DAY('07/01/2017') AS Result;

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

Retorne o nome do dia


Se você precisar retornar o nome do dia (em oposição ao número do dia), consulte 3 maneiras de obter o nome do dia de uma data no SQL Server.