Php 我想在MySQL数据库中有一列自动计算日期时间差

Php 我想在MySQL数据库中有一列自动计算日期时间差,php,mysql,sql,Php,Mysql,Sql,在MySQL数据库中,我有下表存储工作时钟输入和时钟输出时间。我想让小时列自动计算数据库中的日期时间差 ID Clock In Clock Out Hours 我用来预览结果的SQL语句是: SELECT TIMESTAMPDIFF(hour, `clock_in`, `clock_out`) as `difference` FROM records 我只想知道如何将其应用于数据库中的小时列,以便在创建记录时自动填充。最简单的方法是使用视图: CREATE VIEW v_record

在MySQL数据库中,我有下表存储工作时钟输入和时钟输出时间。我想让小时列自动计算数据库中的日期时间差

ID  Clock In  Clock Out  Hours 
我用来预览结果的SQL语句是:

SELECT TIMESTAMPDIFF(hour, `clock_in`, `clock_out`) as `difference` FROM records

我只想知道如何将其应用于数据库中的小时列,以便在创建记录时自动填充。

最简单的方法是使用视图:

CREATE VIEW v_records AS
    SELECT v.*, TIMESTAMPDIFF(hour, `clock_in`, `clock_out`) as `difference`
    FROM records;
这便于在使用时计算值。这将确保使用最新的数据进行计算


如果你想变得有趣,你可以写一个触发器。但是,您需要同时处理更新和插入

你可以在那张桌子上使用触发器!这听起来像是一个很好的视图用例,而不是在另一列中复制信息。我能举个例子说明如何将上面的SQL语句与触发器事件或计算列关联起来吗?谢谢您已经获得了@JustOnUnderMillions的链接以供参考;这里有一些例子。还有马克。
CREATE VIEW v_records AS
    SELECT v.*, TIMESTAMPDIFF(hour, `clock_in`, `clock_out`) as `difference`
    FROM records;