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

Trích xuất số tuần từ một ngày trong SQL Server (T-SQL)

Bạn có thể sử dụng hàm T-SQL DATEPART() để trả về số tuần từ một ngày trong SQL Server.

Theo "số tuần", ý tôi là số của tuần trong năm kể từ ngày được chỉ định.

Ví dụ

Để trả về số tuần, hãy sử dụng week là đối số đầu tiên của DATEPART() chức năng.

DECLARE @date date = '2020-07-20';
SELECT DATEPART(week, @date);

Kết quả:

30

Đối số thay thế

Ngoài ra, bạn có thể sử dụng wk hoặc ww là đối số đầu tiên để làm điều tương tự.

DECLARE @date date = '2024-07-20';
SELECT 
    DATEPART(week, @date) AS week,
    DATEPART(wk, @date) AS wk,
    DATEPART(ww, @date) AS ww;

Kết quả:

+--------+------+------+
 | week   | wk   | ww   |
 |--------+------+------|
 | 29     | 29   | 29   |
 +--------+------+------+  

Bạn sẽ nhận thấy rằng số tuần trong các kết quả này khác với số tuần trong ví dụ trước, mặc dù cả hai ví dụ đều sử dụng ngày 20 tháng 7 làm ngày của chúng. Điều này là để được mong đợi.

Hai ví dụ sử dụng một năm khác nhau. Con số của tuần có thể bị ảnh hưởng bởi năm. Nói cách khác, chỉ vì ngày 20 tháng 7 là tuần thứ 30 trong một năm, điều đó không có nghĩa là nó sẽ là tuần thứ 30 hàng năm. Chỉ là điều cần lưu tâm.

Số tuần ISO

Bạn cũng có thể trả lại số tuần ISO từ một ngày bằng cách sử dụng iso_week lý lẽ. Các tuần lễ ISO bắt đầu vào các ngày thứ Hai và tuần đầu tiên của năm bao gồm ngày 4 tháng 1 của năm đó.

Do đó, những ngày đầu tháng 1 có thể là một phần của tuần thứ 52 hoặc thứ 53 của năm trước và những ngày cuối tháng 12 là một phần của tuần đầu tiên của năm tiếp theo.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Vui lòng giúp cải thiện số liệu thống kê của SQL Server!

  2. Giải pháp cho cách đọc tệp nhật ký giao dịch SQL Server mà không có bất kỳ lỗi nào

  3. Cách thay đổi tên cơ sở dữ liệu trong SQL Server bằng T-SQL

  4. Cách khắc phục:“SQLServerAgent hiện không chạy…”

  5. Chuyển đổi ‘datetimeoffset’ thành ‘time’ trong SQL Server (Ví dụ T-SQL)