0

パンチインタイムとパンチアウトタイムをタイムスタンプとしてデータベースに保存したい出席管理システムを開発しています。テーブルのクエリは次のとおりです。

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フィールドに現在のタイムスタンプを入力し、punchoutフィールドを null のみにする必要があります。パンチ アウトの値は、[パンチ アウト]リンクをクリックしたときにのみ挿入する必要があります。

しかし今、punchin のみに値を挿入しようとすると、punchin とpunchout両方挿入されます。

誰でもこの問題を解決するのを手伝ってもらえますか?

4

2 に答える 2

0

フィールドタイプをタイムスタンプとして選択すると、現在の時刻がフィールドに追加されます。したがって、あなたの場合、パンチンとパンチアウトの両方が同じ値で満たされます。@jaczesで言及されているように、パンチアウトのタイプを変更します

于 2013-09-25T10:24:12.310 に答える
0

そのようにしてみてください:

`punchin` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
`punchout` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
于 2013-09-25T10:20:18.247 に答える