如何计算其他列和另一个表的日期?

时间:2014-11-29 15:13:15

标签: mysql

我有两张桌子:

表1:

|| *handtool_id* || *maintenance_interval_value* || *unit_unit_id* || *handtool_last_date_of_maintenance* || *handtool_next_date_of_maintenance* ||
||             1 ||                            1 ||              5 ||                          2014-11-07 ||                                     ||
||             2 ||                            1 ||              6 ||                          2014-11-07 ||                                     ||
||             3 ||                            4 ||              4 ||                          2014-11-07 ||                                     ||

表2:

|| *unit_id* || *unit_name* || *unit_value* || *unit_parent_id* ||
||         1 ||      Minute ||            1 ||                1 ||
||         2 ||        Hour ||           60 ||                1 ||
||         3 ||         Day ||         1440 ||                1 ||
||         4 ||        Week ||        10080 ||                1 ||
||         5 ||       Month ||        32767 ||                1 ||
||         6 ||        Year ||       525949 ||                1 ||

*handtool_next_date_of_maintenance**maintenance_interval_value*计算*unit_unit_id* + *handtool_last_date_of_maintenance*的正确语法是什么? 谢谢

1 个答案:

答案 0 :(得分:0)

正如Mats Kindani建议的那样,您需要加入这两个表来获得下一个维护日期。

SELECT
table1.handtool_id,
table1.handtool_last_date_of_maintenance,
DATE_ADD(table1.handtool_last_date_of_maintenance, 
    INTERVAL table1.maintenance_interval_value*table2.unit_value SECOND) next_date_of_maintenance
FROM table1
JOIN table2 ON table1.unit_unit_id = table2.unit_id

我用来计算下一个维护日期的函数称为DATE_ADD。您可以在之前的链接中阅读其用法。

最后,如果您想使用“下次维护日期”填充table1,则必须将我的选择查询转换为更新查询。