Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Zmień format daty dla bieżącej sesji w SQL Server

Za każdym razem, gdy łączysz się z SQL Server, do Twojej sesji zostaje zastosowanych kilka ustawień domyślnych. Obejmują one ustawienia języka i formatu daty.

Format daty jest zwykle określany przez domyślny język. Na przykład, jeśli domyślnym językiem jest us_english , wtedy domyślnym formatem daty będzie prawdopodobnie mdy , a pierwszym dniem tygodnia będzie dzień 7 (niedziela).

Jeśli zmienisz język, format daty zostanie domyślnie odpowiednio zaktualizowany.

Jednak nadal masz możliwość zmiany formatu daty bez zmiany języka. Aby to zrobić, możesz użyć SET DATEFORMAT .

Przykład

Najpierw przyjrzyjmy się aktualnym ustawieniom.

DBCC USEROPTIONS;

Wynik:

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

Więc moim obecnym językiem jest us_english a format daty to mdy .

Zmieńmy format daty i sprawdźmy ponownie.

SET DATEFORMAT dmy;
DBCC USEROPTIONS;

Wynik:

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

Udało mi się więc zmienić format daty bez zmiany języka. Jednak datefirst pozostaje takie samo. Jeśli chcesz zmienić datefirst wartość, użyj SET DATEFIRST .

SET DATEFIRST 1;
DBCC USEROPTIONS;

Wynik:

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

W tym przypadku zmieniłem pierwszy dzień tygodnia na dzień 1, czyli poniedziałek.

Zresetuj to z powrotem

Ustawienie języka spowoduje domyślne ustawienie dateformat i datefirst ustawienia z powrotem do wartości domyślnych dla tego języka (nawet jeśli zresetujesz język do bieżącego).

Więc w moim przypadku mogę zresetować język do us_english , a także zresetuje wartości formatu daty.

SET LANGUAGE us_English;
DBCC USEROPTIONS;

Wynik:

+-------------------------+----------------+
 | 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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak korzystać z wyszukiwania semantycznego w SQL Server

  2. Wybierz rozmiar bazy danych SQL Server

  3. Wybierz / wstaw wersję Upsert:czy istnieje wzorzec projektowy dla wysokiej współbieżności?

  4. Nie można połączyć się z serwerem SQL za pomocą PHP

  5. Data obsługi w SQL Server