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

Lấy số tuần cho một ngày trong MS SQL Server 2005?

Cần biết rằng có sự khác biệt về con số tuần chính xác, tùy thuộc vào nền văn hóa. Số tuần phụ thuộc vào một số giả định khác nhau giữa các quốc gia, hãy xem bài viết trên Wikipedia về vấn đề này. Có một tiêu chuẩn ISO (ISO 8601) áp dụng cho số tuần.

Máy chủ SQL được tích hợp DATEPART() chức năng không nhất thiết phải làm Điều đúng. SQL Server giả định ngày 1 của tuần 1 sẽ là ngày 1 tháng 1, đối với nhiều ứng dụng đã sai.

Việc tính toán số tuần một cách chính xác là không hề nhỏ và bạn có thể tìm thấy các cách triển khai khác nhau trên web. Ví dụ:có một UDF tính toán số tuần ISO từ năm 1930-2030, là một trong số nhiều người khác. Bạn sẽ phải kiểm tra xem những gì phù hợp với bạn.

Câu hỏi này là từ Books Online (mặc dù bạn có thể muốn sử dụng câu trả lời từ câu trả lời của Jonas Lincoln, phiên bản BOL có vẻ không chính xác):

CREATE FUNCTION ISOweek  (@DATE DATETIME)
RETURNS INT
AS
BEGIN
   DECLARE @ISOweek INT
   SET @ISOweek = DATEPART(wk,@DATE) 
                  +1 
                  -DATEPART(wk,CAST(DATEPART(yy,@DATE) AS CHAR(4))+'0104')
   -- Special cases: Jan 1-3 may belong to the previous year
   IF (@ISOweek=0)
      SET @ISOweek = dbo.ISOweek(CAST(DATEPART(yy,@DATE) - 1
                     AS CHAR(4))+'12'+ CAST(24+DATEPART(DAY,@DATE) AS CHAR(2)))+1
   -- Special case: Dec 29-31 may belong to the next year
   IF ((DATEPART(mm,@DATE)=12) AND
      ((DATEPART(dd,@DATE)-DATEPART(dw,@DATE))>= 28))
      SET @ISOweek=1
   RETURN(@ISOweek)
END
GO


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Sự khác biệt giữa bảng tạm thời và biến bảng trong SQL Server là gì?

  2. Sửa kế hoạch tự động trong SQL Server

  3. Khi nào sử dụng EXCEPT thay vì NOT EXISTS trong Transact SQL?

  4. Cách dễ dàng xây dựng lại cơ sở dữ liệu tổng thể trong SQL Server

  5. Cách tạo các câu lệnh Chèn từ Dữ liệu Excel và Tải vào Bảng SQL Server - Hướng dẫn SQL Server / TSQL Phần 103