Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

menemukan apakah peringatan akan datang dalam n hari di MySql

Seperti yang telah dinyatakan orang lain, Anda harus mengabaikan tahun dalam perbandingan Anda. Fungsi DAYOFYEAR() adalah salah satu cara untuk melakukannya.

Inilah solusi cepat dari atas kepala saya. Ini akan mengembalikan semua ulang tahun dalam 10 hari ke depan, bahkan jika itu akhir Desember dan ulang tahun tahun depan.

Ini TIDAK menangani tahun kabisat dengan benar, sehingga akan libur 1 hari untuk ulang tahun awal Maret jika tahun ini adalah tahun kabisat dan orang tersebut tidak lahir pada tahun kabisat atau sebaliknya. Tahun kabisat juga akan menyebabkan ulang tahun awal Januari terkadang muncul satu hari libur di akhir Desember. Jika ada yang ingin menambahkan koreksi tahun kabisat, silakan :)

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. Cara memesan berdasarkan tempat di bidang di Laravel

  2. SQL - Masukkan formulir ke dalam database

  3. InnoDB mySQL tidak dapat mengatur ON DELETE SET DEFAULT'. Bagaimana mengatur?

  4. Bagaimana cara mentransfer database MySQL saya ke komputer lain?

  5. MySQL - Pesan kueri dan tampilkan satu baris acak di atas