sql >> Databáze >  >> RDS >> Sqlserver

Změňte formát data pro aktuální relaci na serveru SQL Server

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

  1. Jedinečné omezení, které umožňuje prázdné hodnoty v MySQL

  2. Poskytovatel není kompatibilní s verzí klienta Oracle

  3. Použití proměnné periody v intervalu v Postgresu

  4. Datové modely