Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

tìm kiếm nếu một ngày kỷ niệm sắp tới trong MySql

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;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL đặt ngày hiện tại trong trường DATETIME trên chèn

  2. Câu hỏi bảo mật PHP?

  3. Tìm kiếm MySQL với các ký tự đại diện có thứ tự và trích xuất giá trị của chúng

  4. Django - Làm thế nào để liên kết với cơ sở dữ liệu kế thừa thông qua trung gian?

  5. Sắp xếp SQL theo hai ký tự đầu tiên của các trường