2013-09-25 4 views
0

Je développe un système de gestion des présences dans lequel je veux stocker le pointage dans le temps et l'heure de sortie comme horodatage dans la base de données. La requête de la table est comme indiqué:Ajout de l'horodatage multiple à la base de données 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 ; 

Lorsque l'employé est connecté au système à la première fois ce jour-là, il aura Punch In option Punchin pour la journée. Ensuite, le champ punchin doit être rempli avec l'horodatage actuel et le champ punchout doit être null uniquement. La valeur de punch out ne doit être insérée que lorsque vous cliquez sur le lien Punch Out.

Mais maintenant, quand je suis en train d'insérer la valeur à ne Punchin, à la fois Punchin et PunchOut sont insérés se.

Quelqu'un peut-il m'aider à résoudre ce problème?

+0

peut-être que vous devriez aussi poster votre code de requête –

+0

Les champs ne sont mis à jour s'ils sont inclus dans votre requête. – jeff

+0

Essayez null au lieu de '0000-00-00 00:00:00'. Aussi, pourquoi voulez-vous mettre à jour l'horodatage punchin? De cette façon, punchin et punchout seront les mêmes à la fin. – Jonast92

Répondre

0

Essayez comme ça:

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

Mais chaque fois que le champ punchin sera mis à jour par l'horodatage actuel à droite? Mais je veux seulement que le champ punchout soit mis à jour à chaque fois. Une fois que la valeur est insérée dans punchin, elle ne doit pas être modifiée. – Jenz

0

Si vous choisissez le type de champ comme l'horodatage, l'heure actuelle vous ajoute dans le champ. Donc, dans votre cas, les deux Punchin & Punchout remplira avec la même valeur. Donc changer de type pour punchout comme mentionné par @jaczes

Questions connexes