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

SET DATEFIRST – Задайте първия ден от седмицата в SQL Server

В SQL Server можете да използвате SET DATEFIRST за да зададете първия ден от седмицата.

Първият ден от седмицата може да бъде различен в зависимост от езика, който се използва. Например по подразбиране за us_English е 7 (неделя), докато по подразбиране за Deutsch (немски) е 1 (понеделник).

Тази статия показва как да промените първия ден от седмицата, без да променяте езика.

Синтаксис

Първо, синтаксисът е така:

SET DATEFIRST { number | @number_var }

Където number | @number_var е цяло число, което показва първия ден от седмицата. Това е число между 1 и 7.

Следващата таблица показва съпоставянето между числото и деня от седмицата.

Стойност Първият ден от седмицата е
1 Понеделник
2 Вторник
3 сряда
4 четвъртък
5 Петък
6 събота
7 Неделя

Така че стойност на кажем, 3 , ще зададе сряда като първи ден от седмицата.

Пример 1 – Основна употреба

Ето пример за демонстриране на синтаксиса.

SET DATEFIRST 1;

Това задава първия ден от седмицата на понеделник (можем да видим от горната диаграма, че стойност от 1 карти до понеделник).

Можем да видим текущата настройка, като използваме @@DATEFIRST за да върнете текущата стойност на SET DATEFIRST .

SELECT @@DATEFIRST AS 'Result';

Резултат:

+----------+
| Result   |
|----------|
| 1        |
+----------+

Пример 2 – Отмяна на езиковата настройка

Този пример демонстрира как SET DATEFIRST настройката отговаря на езиковите настройки.

SET LANGUAGE us_english;  
SELECT 
    @@LANGUAGE AS 'LANGUAGE Before',
    @@DATEFIRST AS 'DATEFIRST Before';

SET DATEFIRST 1;
SELECT
    @@LANGUAGE AS 'LANGUAGE After',
    @@DATEFIRST AS 'DATEFIRST After';

Резултат:

+-------------------+--------------------+
| LANGUAGE Before   | DATEFIRST Before   |
|-------------------+--------------------|
| us_english        | 7                  |
+-------------------+--------------------+
Changed language setting to us_english.
+------------------+-------------------+
| LANGUAGE After   | DATEFIRST After   |
|------------------+-------------------|
| us_english       | 1                 |
+------------------+-------------------+

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

Този пример използва SET LANGUAGE за да зададете езика на текущата сесия (който, както споменахме, се използва за определяне на първия ден от седмицата). Езиковата настройка също имплицитно задава формата на датата. Ако е необходимо, можете да използвате SET DATEFORMAT за да замените тази настройка за формата на датата.

За да видите какво DATEFIRST настройките се съпоставят с всеки език, ето Списък с всички езици и свързани формати за дата в SQL Server 2017.

Можете също да използвате sp_helplanguage съхранена процедура, за да върне този списък. За да направите това, вижте Как да намерите форматите за дата, използвани за конкретен език в 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. Запитване на SQL сървър за получаване на списъка с колони в таблица заедно с ограниченията типове данни, NOT NULL и PRIMARY KEY

  2. Получаване и инсталиране на Microsoft SQL Server Management Studio

  3. Възстановяване на SQL Server 2017

  4. Коя SQL заявка е по-бърза? Филтриране по критерии за присъединяване или клауза Къде?

  5. Разпределена транзакция на свързан сървър между sql сървър и mysql