Như những người khác đã nêu, bạn cần bỏ qua năm trong so sánh của mình. Hàm DAYOFYEAR () là một cách để thực hiện điều đó.
Đây là một giải pháp nhanh chóng. Nó sẽ trả về tất cả các sinh nhật trong 10 ngày tới, ngay cả khi đó là cuối tháng 12 và sinh nhật vào năm sau.
Nó KHÔNG xử lý các năm nhuận một cách đúng đắn, do đó, sinh nhật vào đầu tháng 3 sẽ bị nghỉ 1 ngày nếu năm nay là năm nhuận và người đó không sinh vào năm nhuận hoặc ngược lại. Năm nhuận cũng sẽ khiến sinh nhật vào đầu tháng Giêng đôi khi xuất hiện một ngày vào cuối tháng Mười Hai. Nếu ai muốn thêm chỉnh sửa năm nhuận, vui lòng :)
SELECT birthdate
FROM Anniversaries
WHERE dayofyear(birthdate) - dayofyear(curdate()) between 0 and 10
or dayofyear(birthdate) + 365 - dayofyear(curdate()) between 0 and 10;