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

PHPの有効期限

    さて、あなたのデータベース構造はわかりませんが、次のようなものだとしましょう:

    user_table
    -----------------------------------------
    user_id   | date_of_redeem | subscription
    -----------------------------------------
    user1     | 2014-02-01     | 90
    user2     | 2014-05-18     | 365
    user3     | 2014-07-22     | 180
    

    したがって、SQLステートメントのみを使用すると、DATE_SUBなどの何かを使用できます。 date_of_redeemを、今日の日付からサブスクリプションの金額を引いたものと比較します。 date_of_redeemの値が高い場合は結果が得られ、そうでない場合は空の結果セットが返されます。

    SELECT *
    FROM `user_table`
    WHERE `date_of_redeem` > DATE_SUB(NOW(), INTERVAL `subscription` DAY) AND `user_id` = 'desired_user_id'
    

    編集:上記のクエリのSQLフィドル: http://sqlfiddle.com/#!2/ f95ea / 11 user3を変更するだけです いずれかのユーザーIDにアクセスして、結果が返されるかどうかを確認します。

    すべてのサブスクリプションの有効期限を含むテーブルを取得したい場合は、次のようにすることができます。

    SELECT `user_id` AS `User`, (DATE_ADD(`date_of_redeem`, INTERVAL `subscription` DAY)) AS `Subscription Ends`
    FROM `user_table`
    

    このためのSQLフィドル: http://sqlfiddle.com/#!2/f95ea/9



    1. MySQL:ゼロフィルを使用せずに表示幅を指定する理由

    2. MariaDBサーバー10.0.33が利用可能になりました

    3. SQLiteで特定の日付/時刻からの秒数を計算する

    4. 2列間の関係