Tôi có một sở thích nhỏ cho BETWEEN
bởi vì nó làm cho nó ngay lập tức rõ ràng cho người đọc rằng bạn đang kiểm tra một trường cho một phạm vi. Điều này đặc biệt đúng nếu bạn có tên trường tương tự trong bảng của bạn.
Nếu, nói, bảng của chúng tôi có cả một transactiondate
và transitiondate
, nếu tôi đọc
transactiondate between ...
Tôi biết ngay rằng cả hai đầu của thử nghiệm là đối với một lĩnh vực này.
Nếu tôi đọc
transactiondate>='2009-04-17' and transactiondate<='2009-04-22'
tôi phải mất một ít thời gian để đảm bảo rằng hai lĩnh vực đều giống nhau.
Ngoài ra, khi truy vấn được chỉnh sửa theo thời gian, một lập trình viên cẩu thả có thể tách riêng hai trường. Tôi đã nhìn thấy rất nhiều truy vấn mà nói điều gì đó như
where transactiondate>='2009-04-17'
and salestype='A'
and customernumber=customer.idnumber
and transactiondate<='2009-04-22'
Nếu họ thử điều này với một BETWEEN
, tất nhiên, nó sẽ là một lỗi cú pháp và kịp thời sửa chữa.
Đây là một bản sao hoàn toàn trùng lặp với http://stackoverflow.com/questions/1572840/sql-between-v1-and-v2 – mjv
không thực sự, việc xử lý datetime hơi khác một chút, cộng với SQL Server 2008, và không có cách nào Shyju có thể chắc chắn mà không hỏi rằng câu trả lời sẽ giống nhau cho các phiên bản trước. – Irfy