Tôi đang sử dụng SQL Server 2008. Tôi có chỉ mục Non-Unique Non-clustered trên cột DateTime "DateFrom". Tôi đang tìm kiếm bảng dựa trên cột này. Tôi chỉ muốn biết ảnh hưởng của CONVERT() chức năng trên INDEX xem dưới đây:Ảnh hưởng của CONVERT() trên INDEX khi tìm kiếm là gì?
Query1:
SELECT *
FROM myTable
WHERE CONVERT(VARCHAR(10),DateFrom,23) >= '2011-01-01'
Query2:
SELECT *
FROM myTable
WHERE DateFrom >= '2011-01-01 00:00:00.000'
Tôi đã kiểm tra & không tìm thấy sự khác biệt. Nhưng tôi đã nghĩ rằng kể từ khi cột được chuyển đổi, do đó, chỉ số có thể không được sử dụng bởi SQL Server, là nó chính xác?
Hãy tha thứ cho tôi nếu đây không phải là câu hỏi thích hợp.
o.DateFrom - không có bí danh nào cho typo o-nhẹ? – Andrew
* Tôi đã kiểm tra và thấy không có sự khác biệt * - bạn có nói rằng bạn thực sự đã so sánh các kế hoạch thực hiện và thấy chúng giống hệt nhau không? Tôi nghi ngờ điều đó; truy vấn đầu tiên so sánh các chuỗi sử dụng quy tắc cho chuỗi, thứ hai so sánh ngày tháng. – GSerg
Nếu bạn đang vào năm 2008 và truyền 'datetime' thành' date', nó vẫn có thể sử dụng một chỉ mục nhưng điều này là rất nhiều ngoại lệ cho quy tắc. –