插入查询包含Now()有什么问题

时间:2012-03-13 06:22:57

标签: mysql

我正在实施员工考勤系统。 你可以告诉我以下问题有什么问题:

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)
);

3 个答案:

答案 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