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

PHP / MySQLでAgeを毎日更新できるように、BirthdateとAgeを保存するにはどうすればよいですか?

    簡単な答えはしないでください。人の年齢を保存しないでください。毎年人ごとに変わりますが、あなたが言うように、毎日すべての人にとって正しいことを確認する必要があります。

    生年月日のみを保存し、データベースから選択するときに年齢を計算します。 today - date of birthだけです したがって、CPUはほとんど必要ありません。

    編集:

    ManseUKの回答 での私のコメントを拡張するには 失敗する可能性もあります。サーバー/データベースがダウンした場合はどうなりますか?または、指定した時間に更新を実行できませんか?または、誰かがやって来て、その日付の更新がすでに実行された後に手動で実行しますか?または、誰かがあなたのスケジューラをオフにしますか? Ageを計算すれば、これが発生する危険はありません。 データベースから選択します。

    年齢が25〜30歳で、DATE列dateofbirthを想定している場所を選択するには クエリは次のようになります:

    select *
      from users
     where dateofbirth between date_add( curdate(), interval -30 year )
                           and date_add( curdate(), interval -25 year )
    

    usersを確認します dateofbirthにインデックスが付けられます 。



    1. 複数のデータベースに準拠したオンラインSQL構文チェッカー

    2. DATE列にjava.sql.Timestampを渡すと、Oracleが非常に遅いのはなぜですか?

    3. PostgreSQLは再帰CTEから関数にデータを渡します

    4. ajax関数とphpで行を削除します