sql >> Database >  >> RDS >> Sqlserver

Wijzig het datumformaat voor de huidige sessie in SQL Server

Telkens wanneer u verbinding maakt met SQL Server, worden een aantal standaardinstellingen toegepast op uw sessie. Deze omvatten de taal- en datumnotatie-instellingen.

Het datumformaat wordt normaal gesproken bepaald door uw standaardtaal. Als uw standaardtaal bijvoorbeeld us_english . is , dan is de standaard datumnotatie waarschijnlijk mdy , en de eerste dag van de week is dag 7 (zondag).

Als u uw taal wijzigt, wordt het datumformaat impliciet dienovereenkomstig bijgewerkt.

U hebt echter nog steeds de mogelijkheid om het datumformaat te wijzigen zonder de taal te wijzigen. Om dit te doen, kunt u SET DATEFORMAT . gebruiken .

Voorbeeld

Laten we eerst eens kijken naar de huidige instellingen.

DBCC USEROPTIONS;

Resultaat:

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

Dus mijn huidige taal is us_english en het datumformaat is mdy .

Laten we de datumnotatie wijzigen en opnieuw controleren.

SET DATEFORMAT dmy;
DBCC USEROPTIONS;

Resultaat:

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

Dus ik heb met succes het datumformaat gewijzigd zonder de taal te wijzigen. Echter, datefirst blijft hetzelfde. Als u de datefirst . wilt wijzigen waarde, gebruik SET DATEFIRST .

SET DATEFIRST 1;
DBCC USEROPTIONS;

Resultaat:

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

In dit geval heb ik de eerste dag van de week veranderd in dag 1, dat is maandag.

Reset het Terug

Als u de taal instelt, wordt impliciet het dateformat . ingesteld en datefirst instellingen terug naar hun standaardwaarden voor die taal (zelfs als u de taal terugzet naar de huidige taal).

Dus in mijn geval kan ik de taal resetten naar us_english , en het zal ook de datumnotatiewaarden resetten.

SET LANGUAGE us_English;
DBCC USEROPTIONS;

Resultaat:

+-------------------------+----------------+
 | 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. Selecteer kolommen uit de resultatenset van de opgeslagen procedure

  2. Verschillende timezone_types op DateTime-object

  3. Hoe voer ik een bulk in in mySQL met node.js

  4. MySQL, MariaDB, Percona Server, MongoDB of PostgreSQL implementeren - gemakkelijk gemaakt met ClusterControl