我正在实施员工考勤系统。 你可以告诉我以下问题有什么问题:
INSERT INTO tbtimedetail (outTime) VALUES (NOW()) WHERE empID= '$empid_var' and outTime='NULL';
tbtimedetail的结构是:
CREATE TABLE tbTimeDetail(
timeID Int PRIMARY KEY AUTO_INCREMENT,
empID Int(5),
dateDetail Date NOT NULL,
inTime Time NOT NULL,
outTime Time NOT NULL,
FOREIGN KEY (empID) REFERENCES tbempdetail (empID)
);
答案 0 :(得分:1)
insert
只有将行添加到数据库中。在这种情况下, 过滤器没有意义。
看起来您正在尝试更新现有行:
update tbtimedetail
set outTime = NOW()
WHERE empID= '$empid_var' and outTime is NULL;
答案 1 :(得分:0)
您应该使用UPDATE
代替INSERT
,如下所示:
UPDATE tbtimedetails t
SET t.outTime = NOW()
WHERE t.empID = '$empid_var' AND t.outTime IS NULL
答案 2 :(得分:0)
根据Matt的建议,您应该使用IS NULL来检查它是否为空?
还尝试使用CURRENT_TIME()方法而不是NOW()。 有关更多与Mysql时间相关的方法和操作,请参阅以下URL: http://www.roseindia.net/sql/sqldate/mysql-time-function.shtml