Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

SET DATEFIRST - Đặt Ngày đầu tiên trong tuần trong SQL Server

Trong SQL Server, bạn có thể sử dụng SET DATEFIRST để đặt ngày đầu tuần.

Ngày đầu tuần có thể khác nhau, tùy thuộc vào ngôn ngữ được sử dụng. Ví dụ:mặc định cho us_English là 7 (Chủ nhật), trong khi mặc định cho Deutsch (tiếng Đức) là 1 (Thứ Hai).

Bài viết này trình bày cách thay đổi ngày đầu tuần mà không thay đổi ngôn ngữ.

Cú pháp

Đầu tiên, cú pháp như sau:

SET DATEFIRST { number | @number_var }

Số number | @number_var là một số nguyên cho biết ngày đầu tiên trong tuần. Đây là một số từ 1 đến 7.

Bảng sau đây cho thấy ánh xạ giữa số và ngày trong tuần.

Giá trị Ngày đầu tuần là
1 Thứ Hai
2 Thứ Ba
3 Thứ Tư
4 Thứ Năm
5 Thứ Sáu
6 Thứ Bảy
7 Chủ nhật

Vì vậy, một giá trị nói, 3 , sẽ đặt thứ Tư là ngày đầu tiên trong tuần.

Ví dụ 1 - Cách sử dụng cơ bản

Dưới đây là một ví dụ để chứng minh cú pháp.

SET DATEFIRST 1;

Điều này đặt ngày đầu tiên của tuần thành thứ Hai (chúng ta có thể thấy từ biểu đồ trên rằng giá trị của 1 bản đồ đến thứ Hai).

Chúng tôi có thể xem cài đặt hiện tại bằng cách sử dụng @@DATEFIRST để trả về giá trị hiện tại của SET DATEFIRST .

SELECT @@DATEFIRST AS 'Result';

Kết quả:

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

Ví dụ 2 - Ghi đè Cài đặt Ngôn ngữ

Ví dụ này minh họa cách SET DATEFIRST cài đặt phù hợp với cài đặt ngôn ngữ.

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';

Kết quả:

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

Vì vậy, chúng ta có thể thấy rằng ngôn ngữ vẫn như cũ, nhưng ngày đầu tiên của tuần đã thay đổi.

Ví dụ này sử dụng SET LANGUAGE để đặt ngôn ngữ của phiên hiện tại (như đã đề cập, được sử dụng để xác định ngày đầu tiên trong tuần). Cài đặt ngôn ngữ cũng đặt định dạng ngày một cách hoàn toàn. Nếu cần, bạn có thể sử dụng SET DATEFORMAT để ghi đè cài đặt này cho định dạng ngày.

Để xem DATEFIRST nào ánh xạ cài đặt tới từng ngôn ngữ, đây là Danh sách Tất cả Ngôn ngữ và Định dạng Ngày được Liên kết trong SQL Server 2017.

Bạn cũng có thể sử dụng sp_helplanguage thủ tục được lưu trữ để trả lại danh sách đó. Để thực hiện việc này, hãy xem Cách tìm định dạng ngày được sử dụng cho một ngôn ngữ cụ thể trong 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. Bạn có thể gọi một dịch vụ web từ mã TSQL không?

  2. 4 cách để kiểm tra các dòng trùng lặp trong SQL Server

  3. Cách sử dụng BẤT KỲ / MỘT SỐ Toán tử logic nào trong SQL Server - Hướng dẫn sử dụng SQL Server / TSQL Phần 127

  4. Lấy hình ảnh từ cơ sở dữ liệu trong asp.net

  5. Làm thế nào để triển khai LIMIT với SQL Server?