Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Как да промените формата на текущата дата в SQL Server (T-SQL)

Когато се свързвате със SQL Server, обикновено форматът на датата се определя от вашия език. Езикът по подразбиране за сесия е езикът за влизане в тази сесия, освен ако не е отменен за всяка сесия чрез използване на Open Database Connectivity (ODBC) или OLE DB API.

Настройката за формат на датата влияе върху интерпретацията на символните низове, тъй като те се преобразуват в стойности на дата за съхранение в базата данни. Това не засяга показването на стойности на тип данни за дата, които се съхраняват в базата данни или формата за съхранение.

Въпреки факта, че езикът на вашата сесия определя формата на датата, можете да замените формата на датата, ако е необходимо. Например, ако вашият език е us_english , форматът на датата ще бъде mdy (така че 01.07.2018 представлява 1 юли, а не 7 януари). Можете да промените това, така че форматът на датата да е dmy (или всеки друг формат), докато езикът остава us_english .

Можете да използвате T-SQL, за да зададете изрично формата на датата на текущата сесия, като използвате SET DATEFORMAT изявление.

Синтаксис

Ето как върви синтаксисът:

SET DATEFORMAT { format | @format_var }

Където format | @format_var е редът на частите за дата.

Валидни стойности са mdy , dmy , ymd , ydm , myd и dym . Те могат да бъдат или Unicode, или двубайтови набори от знаци (DBCS), преобразувани в Unicode.

Имайте предвид обаче, че  ydm не се поддържа за датадата и час2 и datetimeoffset типове данни.

Пример

Преди да променим нещо, нека разгледаме текущите потребителски опции. Това ще ни каже какъв е текущият език и формата на датата (както и няколко други неща):

DBCC USEROPTIONS;

Резултат:

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

Можем да видим, че езикът е us_english и форматът на датата е mdy (който е форматът на датата по подразбиране за този език).

Така че нека променим формата на датата, след което да проверим отново потребителските опции:

SET DATEFORMAT dmy;
DBCC USEROPTIONS;

Резултат:

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

И виждаме, че форматът на датата е променен, а езикът остава същият.

Ето как да промените формата на датата, без да променяте езика. Както бе споменато, ако промените езика, той имплицитно ще зададе формата на датата в същото време. Ако искате да направите това, вижте Как да настроите текущия език в SQL Server (T-SQL).


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Всеки израз GROUP BY трябва да съдържа поне една колона, която не е външна препратка

  2. Генерирайте диаграма на връзката на таблицата от съществуваща схема (SQL Server)

  3. Поправете „Грешка при аритметично препълване при преобразуване на int в числови тип данни“ в SQL Server

  4. Създайте таблица (структура) от съществуваща таблица

  5. Автоматизирайте заданията за архивиране и поддръжка с помощта на план за поддръжка в SQL Server