No SQL Server, você pode usar
SET DATEFIRST para definir o primeiro dia da semana. O primeiro dia da semana pode ser diferente, dependendo do idioma usado. Por exemplo, o padrão para us_English é 7 (domingo), enquanto o padrão para Deutsch (alemão) é 1 (Segunda-feira).
Este artigo demonstra como alterar o primeiro dia da semana sem alterar o idioma.
Sintaxe
Primeiro, a sintaxe é assim:
SET DATEFIRST { number | @number_var } Onde
number | @number_var é um número inteiro que indica o primeiro dia da semana. Este é um número entre 1 e 7. A tabela a seguir mostra o mapeamento entre o número e o dia da semana.
| Valor | O primeiro dia da semana é |
|---|---|
| 1 | Segunda-feira |
| 2 | terça-feira |
| 3 | Quarta-feira |
| 4 | quinta-feira |
| 5 | Sexta-feira |
| 6 | Sábado |
| 7 | Domingo |
Então, um valor de, digamos,
3 , definiria quarta-feira como o primeiro dia da semana. Exemplo 1 – Uso básico
Aqui está um exemplo para demonstrar a sintaxe.
SET DATEFIRST 1;
Isso define o primeiro dia da semana como segunda-feira (podemos ver no gráfico acima que um valor de
1 mapas para segunda-feira). Podemos visualizar a configuração atual usando
@@DATEFIRST para retornar o valor atual de SET DATEFIRST . SELECT @@DATEFIRST AS 'Result';
Resultado:
+----------+ | Result | |----------| | 1 | +----------+
Exemplo 2 – Substituir a configuração de idioma
Este exemplo demonstra como o
SET DATEFIRST configuração se encaixa com as configurações de idioma. SET LANGUAGE us_english;
SELECT
@@LANGUAGE AS 'LANGUAGE Before',
@@DATEFIRST AS 'DATEFIRST Before';
SET DATEFIRST 1;
SELECT
@@LANGUAGE AS 'LANGUAGE After',
@@DATEFIRST AS 'DATEFIRST After'; Resultado:
+-------------------+--------------------+ | LANGUAGE Before | DATEFIRST Before | |-------------------+--------------------| | us_english | 7 | +-------------------+--------------------+ Changed language setting to us_english. +------------------+-------------------+ | LANGUAGE After | DATEFIRST After | |------------------+-------------------| | us_english | 1 | +------------------+-------------------+
Então podemos ver que o idioma continua o mesmo, mas o primeiro dia da semana mudou.
Este exemplo usa
SET LANGUAGE para definir o idioma da sessão atual (que, conforme mencionado, é usado para determinar o primeiro dia da semana). A configuração de idioma também define implicitamente o formato de data. Se necessário, você pode usar SET DATEFORMAT para substituir essa configuração para o formato de data. Para ver o que
DATEFIRST configurações mapeiam para cada idioma, aqui está uma lista de todos os idiomas e formatos de data associados no SQL Server 2017. Você também pode usar o
sp_helplanguage procedimento armazenado para retornar essa lista. Para fazer isso, consulte Como encontrar os formatos de data usados para um idioma específico no SQL Server (T-SQL).