tôi sử dụng DATEDIFF chức năng để lọc hồ sơ bổ sung trong tuần này chỉ:Có thể đặt bắt đầu tuần cho hàm T-SQL DATEDIFF không?
DATEDIFF(week, DateCreated, GETDATE()) = 0
và tôi nhận thấy những gì nó giả định những gì trong tuần bắt đầu từ ngày chủ nhật. Nhưng trong trường hợp của tôi, tôi muốn thiết lập bắt đầu tuần vào thứ hai. Có thể nào đó bằng T-SQL?
Cảm ơn!
Cập nhật:
Dưới đây là một ví dụ cho thấy những gì DATEDIFF không kiểm tra @@DATEFIRST biến vì vậy tôi cần một giải pháp khác.
SET DATEFIRST 1;
SELECT
DateCreated,
DATEDIFF(week, DateCreated, CAST('20090725' AS DATETIME)) AS D25,
DATEDIFF(week, DateCreated, CAST('20090726' AS DATETIME)) AS D26
FROM
(
SELECT CAST('20090724' AS DATETIME) AS DateCreated
UNION
SELECT CAST('20090725' AS DATETIME) AS DateCreated
) AS T
Output:
DateCreated D25 D26
----------------------- ----------- -----------
2009-07-24 00:00:00.000 0 1
2009-07-25 00:00:00.000 0 1
(2 row(s) affected)
26 Jul 2009 là Chủ nhật, và tôi muốn DATEDIFF trả về 0 trong cột thứ ba quá.
Xin lỗi vì không kiểm tra xem DateFirst đã được kiểm tra bởi ngày hay chưa, ai có thể đoán được, tôi đã cập nhật câu trả lời của tôi để tính đến điều này. – Tetraneutron