Trong bài đăng này, tôi đang chia sẻ một tập lệnh để tìm tất cả các ngày giữa hai ngày nhất định trong SQL Server.
Hôm nay, buổi sáng một nhà phát triển cơ sở dữ liệu đến bàn của tôi và hỏi về truy vấn này.
Tôi đã tạo một tập lệnh nhỏ cho anh ấy, vì vậy ở đây tôi cũng chia sẻ tập lệnh này sẽ giúp ích cho những người khác.
Tôi đang sử dụng câu lệnh WITH để tìm danh sách tất cả các ngày giữa hai ngày nhất định.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | DECLARE @StartDateTime DATETIME DECLARE @EndDateTime DATETIME SET @StartDateTime = '2015-01-01' SET @EndDateTime = '2015-01-12'; WITH DateRange(DateData) AS ( SELECT @StartDateTime as Date UNION ALL SELECT DATEADD(d,1,DateData) FROM DateRange WHERE DateData < @EndDateTime ) SELECT DateData FROM DateRange OPTION (MAXRECURSION 0) GO |
Kết quả:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | DateData ----------------------- 2015-01-01 00:00:00.000 2015-01-02 00:00:00.000 2015-01-03 00:00:00.000 2015-01-04 00:00:00.000 2015-01-05 00:00:00.000 2015-01-06 00:00:00.000 2015-01-07 00:00:00.000 2015-01-08 00:00:00.000 2015-01-09 00:00:00.000 2015-01-10 00:00:00.000 2015-01-11 00:00:00.000 2015-01-12 00:00:00.000 |