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

Nhận mỗi giờ trong một phạm vi thời gian

Không yêu cầu vòng lặp, CTE đệ quy hoặc bảng số.

DECLARE 
  @start TIME(0) = '11:00 AM', 
  @end   TIME(0) =  '2:00 PM';

WITH x(n) AS 
(
  SELECT TOP (DATEDIFF(HOUR, @start, @end) + 1) 
  rn = ROW_NUMBER() OVER (ORDER BY [object_id]) 
  FROM sys.all_columns ORDER BY [object_id]
)
SELECT t = DATEADD(HOUR, n-1, @start) FROM x ORDER BY t;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Lỗi thay đổi loại con trỏ trên kết quả hàm dữ liệu Perl OLE32 MSSQL

  2. Bảng có nhiều cột

  3. Truy vấn các kiểu dữ liệu XML có thuộc tính nút xmlns

  4. Cách tính toán Phép nhân đang chạy

  5. Kế hoạch thực thi chế độ xem được phân vùng