你好花了很多时间寻找教程或回答我的更新查询。这是一个时间跟踪系统
表就像
| id | emp_nr | start_time | end_time | | 1 | 47 | 2018-01-31 13:15:10 | NULL |
此查询适用于更新,但需要帮助,因为无论如何都会更新 因为它在同一天内并且没有移动到新的字段或返回错误。
UPDATE time SET end_time='$date'
WHERE DATE(`start_time`) = CURDATE() AND `emp_nr`=$emp_nr";
我想使用当前时间更新end_time字段,如果它是NULL且在过去12小时内。如果发生日期更改,则根本不会更新并返回值" "
我在这里寻求一些建议,我有点困惑。我已经完成了一些阅读" ON Duplicate Key"或者更新查询是否应该更多地指向" IF / THEN / ELSE"?
答案 0 :(得分:1)
使用:
UPDATE time SET end_time='$date'
WHERE DATE(`start_time`) = CURDATE() AND `emp_nr`=$emp_nr AND end_time IS NULL;
答案 1 :(得分:0)
您需要在where子句中再添加一列以检查end_time IS NULL。 例如 -
UPDATE time SET end_time='$date'
WHERE DATE(`start_time`) = CURDATE() AND `emp_nr`=$emp_nr
AND end_time IS NULL";