2013-09-25 55 views
0

我正在開發一個考勤管理系統,我希望在其中存儲打卡時間並在數據庫中打出時間戳。該表的查詢,如下所示:將多個時間戳添加到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 ; 

當員工在第一時間爲當天登錄到系統,他將有切入選項punchin的一天。然後在的領域應填充當前的時間戳和字段應僅爲空。只有在點擊打孔鏈接時才應插入打孔值。

但現在當我試圖插入值僅punchin,既punchin樣片越來越插入。

任何人都可以幫助我解決這個問題嗎?

+0

也許您還應該發佈您的查詢代碼 –

+0

字段只有在它們包含在查詢中時纔會更新。 – jeff

+0

嘗試null而不是'0000-00-00 00:00:00'。此外,爲什麼你想更新punchin時間戳?這樣,衝刺和衝刺最終將是一樣的。 – Jonast92

回答

0

嘗試這樣的:

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

但是那麼每次punchin字段都會被當前時間戳更新爲正確的?但是我只想每次都更新punchout字段。將值插入punchin後,不應更改。 – Jenz

0

如果選擇字段類型爲時間戳,當前時間將被添加到現場。所以在你的情況下,雙方Punchin & Punchout將填充相同的價值。因此,如@jaczes所述,更改打孔類型