Sempre que você se conecta ao SQL Server, várias configurações padrão são aplicadas à sua sessão. Isso inclui as configurações de idioma e formato de data.
O formato de data normalmente é determinado pelo seu idioma padrão. Por exemplo, se seu idioma padrão for
us_english , o formato de data padrão provavelmente será mdy , e o primeiro dia da semana será o dia 7 (Domingo). Se você alterar seu idioma, o formato de data será implicitamente atualizado de acordo.
No entanto, você ainda tem a opção de alterar o formato da data sem alterar o idioma. Para fazer isso, você pode usar
SET DATEFORMAT . Exemplo
Primeiro, vamos dar uma olhada nas configurações atuais.
DBCC USEROPTIONS; Resultado:
+-------------------------+----------------+ | Set Option | Value | |-------------------------+----------------| | textsize | -1 | | language | us_english | | dateformat | mdy | | datefirst | 7 | | lock_timeout | 5000 | | quoted_identifier | SET | | arithabort | SET | | ansi_null_dflt_on | SET | | ansi_warnings | SET | | ansi_padding | SET | | ansi_nulls | SET | | concat_null_yields_null | SET | | isolation level | read committed | +-------------------------+----------------+
Então meu idioma atual é
us_english e o formato de data é mdy . Vamos alterar o formato da data e verificar novamente.
SET DATEFORMAT dmy;
DBCC USEROPTIONS; Resultado:
+-------------------------+----------------+ | Set Option | Value | |-------------------------+----------------| | textsize | -1 | | language | us_english | | dateformat | dmy | | datefirst | 7 | | lock_timeout | 5000 | | quoted_identifier | SET | | arithabort | SET | | ansi_null_dflt_on | SET | | ansi_warnings | SET | | ansi_padding | SET | | ansi_nulls | SET | | concat_null_yields_null | SET | | isolation level | read committed | +-------------------------+----------------+
Então, alterei com sucesso o formato da data sem alterar o idioma. No entanto,
datefirst continua o mesmo. Se você deseja alterar o datefirst valor, use SET DATEFIRST . SET DATEFIRST 1;
DBCC USEROPTIONS; Resultado:
+-------------------------+----------------+ | Set Option | Value | |-------------------------+----------------| | textsize | -1 | | language | us_english | | dateformat | dmy | | datefirst | 1 | | lock_timeout | 5000 | | quoted_identifier | SET | | arithabort | SET | | ansi_null_dflt_on | SET | | ansi_warnings | SET | | ansi_padding | SET | | ansi_nulls | SET | | concat_null_yields_null | SET | | isolation level | read committed | +-------------------------+----------------+
Nesse caso, alterei o primeiro dia da semana para o dia 1, que é segunda-feira.
Redefinir novamente
Definir o idioma definirá implicitamente o
dateformat e datefirst configurações de volta para seus valores padrão para esse idioma (mesmo se você redefinir o idioma para o idioma atual). Então, no meu caso, posso redefinir o idioma para
us_english , e também redefinirá os valores do formato de data. SET LANGUAGE us_English;
DBCC USEROPTIONS; Resultado:
+-------------------------+----------------+ | Set Option | Value | |-------------------------+----------------| | textsize | -1 | | language | us_english | | dateformat | mdy | | datefirst | 7 | | lock_timeout | 5000 | | quoted_identifier | SET | | arithabort | SET | | ansi_null_dflt_on | SET | | ansi_warnings | SET | | ansi_padding | SET | | ansi_nulls | SET | | concat_null_yields_null | SET | | isolation level | read committed | +-------------------------+----------------+