В 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).