Ogni volta che ti connetti a SQL Server, alla tua sessione vengono applicate numerose impostazioni predefinite. Questi includono la lingua e le impostazioni del formato della data.
Il formato della data è normalmente determinato dalla lingua predefinita. Ad esempio, se la tua lingua predefinita è us_english
, quindi il formato della data predefinito sarà probabilmente mdy
e il primo giorno della settimana sarà il giorno 7
(domenica).
Se cambi la tua lingua, il formato della data verrà implicitamente aggiornato di conseguenza.
Tuttavia, hai ancora la possibilità di cambiare il formato della data senza cambiare la lingua. Per fare ciò, puoi utilizzare SET DATEFORMAT
.
Esempio
Per prima cosa, diamo un'occhiata alle impostazioni correnti.
DBCC USEROPTIONS;
Risultato:
+-------------------------+----------------+ | 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 | +-------------------------+----------------+
Quindi la mia lingua attuale è us_english
e il formato della data è mdy
.
Cambiamo il formato della data e ricontrolliamo.
SET DATEFORMAT dmy;
DBCC USEROPTIONS;
Risultato:
+-------------------------+----------------+ | 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 | +-------------------------+----------------+
Quindi ho cambiato con successo il formato della data senza cambiare la lingua. Tuttavia, datefirst
rimane lo stesso. Se vuoi cambiare il datefirst
valore, utilizzare SET DATEFIRST
.
SET DATEFIRST 1;
DBCC USEROPTIONS;
Risultato:
+-------------------------+----------------+ | 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 questo caso ho cambiato il primo giorno della settimana in giorno 1, che è lunedì.
Reimpostalo indietro
L'impostazione della lingua imposterà implicitamente il dateformat
e datefirst
riportano le impostazioni ai valori predefiniti per quella lingua (anche se reimposti la lingua alla lingua corrente).
Quindi, nel mio caso, posso reimpostare la lingua su us_english
e ripristinerà anche i valori del formato della data.
SET LANGUAGE us_English;
DBCC USEROPTIONS;
Risultato:
+-------------------------+----------------+ | 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 | +-------------------------+----------------+