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 | +-------------------------+----------------+