Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Modificare il formato della data per la sessione corrente in SQL Server

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