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

保存された日付フィールドを使用して、現在の経過日数を計算するフィールドを計算します

    CURDATE()についてお読みください。 およびDATEDIFF() 関数(および将来役立つ可能性のあるMySQLの他の関数)はここにあります: https://dev.mysql.com/doc/refman/5.7/en/date-and-time-functions.html#function_datediff

    SELECT *, DATEDIFF(CURDATE(), mydatefield) AS days_since
    FROM MyTable;
    

    これをテーブルに組み込みたい場合は、VIEWを使用できます:

    CREATE VIEW MyView AS
      SELECT *, DATEDIFF(CURDATE(), mydatefield) AS days_since
      FROM MyTable;
    

    MySQL 5.7は、生成された列 をサポートします。 ここで、式に基づいて仮想列を追加できますが、この場合、CURDATE()のような非決定論的関数を使用することは許可されていないため、これは機能しません。

    ALTER TABLE MyTable ADD COLUMN days_since INT AS (DATEDIFF(CURDATE(), mydatefield));
    ERROR 3102 (HY000): Expression of generated column 'days_since' contains a disallowed function.
    



    1. PHP-uniqid(、true)とuniqid()+ mt_rand()

    2. SQL SELECT IN

    3. Ubuntuでmysqlサーバーを起動できません

    4. ブールサポートOracleSQL