2009-09-14 6 views
0

J'ai deux colonnes: beginTime et durée. J'essaye de calculer le endTime. Le problème est que je récupère des résultats vides.MySQL DATE_ADD ne fonctionne pas

J'ai essayé plusieurs choses.

DATE_ADD(startTime, INTERVAL `duration` MINUTE) AS endTime 

DATE_ADD(startTime, INTERVAL '10' MINUTE) AS endTime 

DATE_ADD(startTime, INTERVAL 10 MINUTE) AS endTime 

Mais à chaque fois que le résultat est vide. startTime n'est pas vide. C'est un champ horaire au format 09:00:00.

Quelqu'un peut-il m'aider avec ceci?

Répondre

1

DATE_ADD renverra NULL si le format de l'heure est incorrect, avec un avertissement:

mysql> \W 
Show warnings enabled. 
mysql> SELECT DATE_ADD('25:00:00', INTERVAL 10 MINUTE) AS endTime 
    -> ; 
+---------+ 
| endTime | 
+---------+ 
| NULL | 
+---------+ 
1 row in set, 1 warning (0.00 sec) 

Warning (Code 1292): Incorrect datetime value: '25:00:00' 

Notez également que 'hh:mm:ss' n'est pas un format datetime correct. Vous devez avoir l'année, le mois et le jour aussi.

Pourriez-vous s'il vous plaît activer les avertissements dans MySQL et répéter la requête avec vos données?

+0

Ceci est le message que je reçois lorsque j'exequte ma requête: Avertissement (Code 1264): Valeur hors plage pour la colonne 'startTime' à la ligne 1. Probablement à cause du mauvais type. Comment puis-je ajouter des minutes à un champ horaire? – Ikke

0

Cela fonctionne pour moi:

SELECT DATE_ADD(`startTime`, INTERVAL 10 MINUTE) AS endTime FROM `users` WHERE 1 
+0

Quel est le type de champ 'startTime'? – Ikke

0

En premier paramètre DATE_ADD censé être champ Date non de champ Heure. Pouvez-vous essayer de changer l'heure de début au format Date ('0000-00-00 00:00:00') et essayer?