Kdykoli se připojíte k serveru SQL Server, na vaši relaci se použije řada výchozích nastavení. Patří mezi ně nastavení jazyka a formátu data.
Formát data je obvykle určen vaším výchozím jazykem. Pokud je například váš výchozí jazyk us_english , pak bude výchozí formát data pravděpodobně mdy a první den v týdnu bude den 7 (neděle).
Pokud změníte jazyk, formát data se implicitně odpovídajícím způsobem aktualizuje.
Stále však máte možnost změnit formát data bez změny jazyka. K tomu můžete použít SET DATEFORMAT .
Příklad
Nejprve se podívejme na aktuální nastavení.
DBCC USEROPTIONS; Výsledek:
+-------------------------+----------------+ | 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 | +-------------------------+----------------+
Můj aktuální jazyk je tedy us_english a formát data je mdy .
Změňme formát data a znovu to zkontrolujte.
SET DATEFORMAT dmy;
DBCC USEROPTIONS; Výsledek:
+-------------------------+----------------+ | 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 | +-------------------------+----------------+
Takže jsem úspěšně změnil formát data bez změny jazyka. Nicméně datefirst připomíná to samé. Pokud chcete změnit datefirst hodnotu, použijte SET DATEFIRST .
SET DATEFIRST 1;
DBCC USEROPTIONS; Výsledek:
+-------------------------+----------------+ | 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 | +-------------------------+----------------+
V tomto případě jsem změnil první den v týdnu na den 1, což je pondělí.
Obnovit zpět
Nastavení jazyka implicitně nastaví dateformat a datefirst nastavení zpět na výchozí hodnoty pro daný jazyk (i když jazyk resetujete na aktuální jazyk).
Takže v mém případě mohu resetovat jazyk na us_english a také resetuje hodnoty formátu data.
SET LANGUAGE us_English;
DBCC USEROPTIONS; Výsledek:
+-------------------------+----------------+ | 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 | +-------------------------+----------------+