sql >> Base de Datos >  >> RDS >> Sqlserver

Cambiar el formato de fecha para la sesión actual en SQL Server

Cada vez que se conecta a SQL Server, se aplican una serie de configuraciones predeterminadas a su sesión. Estos incluyen el idioma y la configuración del formato de fecha.

El formato de fecha normalmente está determinado por su idioma predeterminado. Por ejemplo, si su idioma predeterminado es us_english , entonces el formato de fecha predeterminado probablemente será mdy , y el primer día de la semana será el día 7 (domingo).

Si cambia su idioma, el formato de fecha se actualizará implícitamente en consecuencia.

Sin embargo, aún tiene la opción de cambiar el formato de fecha sin cambiar el idioma. Para hacer esto, puede usar SET DATEFORMAT .

Ejemplo

Primero, echemos un vistazo a la configuración actual.

DBCC USEROPTIONS;

Resultado:

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

Así que mi idioma actual es us_english y el formato de fecha es mdy .

Cambiemos el formato de fecha y comprobemos de nuevo.

SET DATEFORMAT dmy;
DBCC USEROPTIONS;

Resultado:

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

Así que cambié con éxito el formato de fecha sin cambiar el idioma. Sin embargo, datefirst sigue siendo el mismo. Si desea cambiar el datefirst valor, use SET DATEFIRST .

SET DATEFIRST 1;
DBCC USEROPTIONS;

Resultado:

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

En este caso, he cambiado el primer día de la semana para que sea el día 1, que es el lunes.

Restablecerlo

Establecer el idioma establecerá implícitamente el dateformat y datefirst la configuración vuelve a sus valores predeterminados para ese idioma (incluso si restablece el idioma al idioma actual).

Entonces, en mi caso, puedo restablecer el idioma a us_english y también restablecerá los valores del formato de fecha.

SET LANGUAGE us_English;
DBCC USEROPTIONS;

Resultado:

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