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