Tôi có cột ngày trên bảng SQL Server được gọi là dd
.Sự khác biệt về hiệu suất trong SQL
dd
---------------------------
10-01-2015 00:00:00.000
22-05-2015 10:22:32.521
27-05-2015 12:30:48.310
24-12-2014 09:51:11.728
27-05-2015 02:05:40.775
....
Tôi cần truy xuất tất cả các hàng có giá trị dd trong 24 giờ qua.
tôi thấy 3 lựa chọn cho việc lọc để có được kết quả cần thiết:
1. `dd >= getdate() - 1`
2. `dd >= dateadd(day, -1, getdate())
3. `dateadd(day, 1, dd) >= getdate()
Câu hỏi của tôi là: Có phải tất cả 3 tùy chọn này sẽ lấy tất cả các hàng tôi cần?
Nếu có sự khác biệt nào giữa chúng?
# 3 là điều tồi tệ nhất bạn có thể làm! – JimmyB
Bạn đã xem các kế hoạch thực hiện chưa? –
# 1 và # 2 giống hệt nhau, trong đó # 1 chỉ là ký hiệu viết tắt của MS-SQL cho # 2. Tôi muốn sử dụng # 2 mặc dù, bởi vì nó dường như truyền đạt rõ ràng hơn cho người đọc những gì đơn vị đang được thêm vào. – JimmyB