sql >> データベース >  >> RDS >> Mysql

MySqlで記念日がn日以内に来るかどうかを見つける

    他の人が述べているように、あなたはあなたの比較で年を無視する必要があります。 DAYOFYEAR()関数はそれを行う1つの方法です。

    これが私の頭のてっぺんからの簡単な解決策です。 12月下旬で、誕生日が来年であっても、10日以内にすべての誕生日が返されます。

    うるう年は適切に処理されないため、今年がうるう年で、うるう年に生まれていない場合、またはその逆の場合は、3月上旬の誕生日に1日オフになります。うるう年では、1月上旬の誕生日が12月下旬の1日休みになることもあります。うるう年の修正を追加したい場合は、お気軽に:)

    SELECT birthdate 
    FROM Anniversaries 
    WHERE dayofyear(birthdate) - dayofyear(curdate()) between 0 and 10 
    or dayofyear(birthdate) + 365 - dayofyear(curdate()) between 0 and 10;
    


    1. yiiでmysqlクエリを実行する方法

    2. より良い理解-Class.forName(com.mysql.jdbc.Driver).newInstance();

    3. Codeigniterで3つのテーブルを結合する方法

    4. PostgreSQLのアップグレードプロセスの自動テスト