Tôi nghĩ vấn đề nằm ở việc so sánh thời gian của bạn:bạn đã lọc ra mọi thứ một cách hiệu quả với time >= '22:00:00' and time <= '7:00:00'
Hy vọng điều này sẽ hữu ích: http://sqlfiddle.com/#!2/45108/7 / 0
SELECT * FROM fax
WHERE date BETWEEN CURDATE() and CURDATE() + INTERVAL 1 DAY
and
((time >= '22:00' and time <= '23:59')
or
(time >= '0:00' and time <= '7:00'))
and shift='GY'
and complete=1