Ví dụ, bạn có thể sử dụng cái này
DECLARE
@min FLOAT = CAST(CAST('19000101 12:20' AS DATETIME) AS FLOAT),
@max FLOAT = CAST(CAST('19000101 15:50' AS DATETIME) AS FLOAT)
SELECT
*
FROM table
WHERE CAST(DateField AS FLOAT) - FLOOR(CAST(DATEFIELD AS FLOAT)) BETWEEN @min AND @max
Nhưng đây thực sự không phải là một giải pháp !!!
Cách tốt nhất là giới thiệu thêm 1 cột được tính là
NewColumn AS DATEPART(HOUR, DateColumn)*100+DATEPART(minute, DateColumn)
Tạo chỉ mục trên đó và sử dụng trong mệnh đề where
WHERE NewColumn BETWEEN 1220 AND 1550