Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Sử dụng trường ngày được lưu trữ để tính toán trường tính số ngày hiện tại đã trôi qua

Bạn có thể muốn đọc về CURDATE()DATEDIFF() các hàm (và các hàm khác trong MySQL có thể hữu ích cho bạn trong tương lai) tại đây: https://dev.mysql.com/doc/refman/5.7/en/date-and-time-functions.html# Chức năng_datediff

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

Nếu bạn muốn điều này được tích hợp sẵn trong bảng, bạn có thể sử dụng CHẾ ĐỘ XEM:

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

MySQL 5.7 hỗ trợ các cột được tạo nơi bạn có thể thêm một cột ảo dựa trên một biểu thức, nhưng điều này không hoạt động trong trường hợp này vì sử dụng một hàm không xác định như CURDATE () không được phép trong các biểu thức như vậy.

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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Hàm FIELD của Doctrine 2 theo thứ tự

  2. Xếp hạng top-N của MySQL và tổng hợp phần còn lại của cùng một nhóm

  3. Laravel thuộc vềToMany nơi không có một trong những

  4. Truy vấn chậm trên information_schema.tables

  5. EF Core 2.0 Identity - Thêm thuộc tính điều hướng