向MySQL数据库添加多个时间戳

时间:2013-09-25 10:11:10

标签: php mysql

我正在开发一个考勤管理系统,我想在其中存储时间和打卡时间作为数据库中的时间戳。该表的查询如下所示:

CREATE TABLE IF NOT EXISTS `punchdetails` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`employeeid` int(11) NOT NULL,
`punchin` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
`punchout` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
`SERVER_ADDRIN` varchar(40) NOT NULL,
`REMOTE_ADDRIN` varchar(40) NOT NULL,
`REQUEST_TIMEIN` int(30) NOT NULL,
`SERVER_ADDROUT` varchar(40) NOT NULL,
`REMOTE_ADDROUT` varchar(40) NOT NULL,
`REQUEST_TIMEOUT` int(30) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;

当员工第一次登录系统时,他会有 Punch In 选项来打入当天。然后,字段 punchin 应填充当前时间戳, punchout 字段应仅为null。只有在单击 Punch Out 链接时才应插入打卡值。

但是现在当我尝试仅将值插入 punchin 时, punchin punchout 都会被插入。

有人可以帮我解决这个问题吗?

2 个答案:

答案 0 :(得分:0)

尝试这样:

`punchin` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
`punchout` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',

答案 1 :(得分:0)

如果选择字段类型作为时间戳,则当前时间将添加到字段中。所以在你的情况下,Punchin& Punchout将填充相同的值。因此,如@jaczes

所述,改变打孔类型