我有两张桌子:
表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*
的正确语法是什么?
谢谢
答案 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
,则必须将我的选择查询转换为更新查询。