我正在使用 MySQL 和 phpMyAdmin。我的数据库中有一个“日期”字段,我需要在 MySQL_db 中创建一个字段,该字段将计算并显示自每个记录/行的“日期”字段中的日期以来已经过去的天数。
我没有能力使用 PHP 即时生成代码。
有没有办法在 MySQL 中创建一个字段,使我能够在 MySQL_db 中显示此计算?
您可能想阅读有关CURDATE()
and DATEDIFF()
函数(以及 MySQL 中将来可能对您有用的其他函数):https://dev.mysql.com/doc/refman/5.7/en/date-and-time-functions.html#function_datediff 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 支持生成的列 https://dev.mysql.com/doc/refman/5.7/en/create-table-generated-columns.html您可以在其中基于表达式添加虚拟列,但这在这种情况下不起作用,因为在此类表达式中不允许使用诸如 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.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)