Question

J'essaie cette

SELECT DATEDIFF(second,log.start_time,log.end_time) 
as seconds 
from log 
where log.log_id = "some crazy UUID";

mais je reçois une erreur car DATEDIFF() accepte pas expr formatter comme seconde.

Alors j'ai essayé,

SELECT second(DATEDIFF(second,log.start_time,log.end_time)) 
as seconds 
from log
where log.log_id = "some crazy UUID";

Mais cela ne fonctionne pas pour le formatage soit.

Était-ce utile?

La solution

Je pense que vous vouliez dire utiliser TIMESTAMPDIFF() au lieu de DATEDIFF():

SELECT TIMESTAMPDIFF(second,log.start_time,log.end_time) as seconds 
from log 
where log.log_id = "some crazy UUID";

Autres conseils

Essayer cette

SELECT TIME_TO_SEC( TIMEDIFF( log.start_time, log.end_time )) AS seconds
FROM log 
WHERE log.log_id = "some crazy UUID";

DATEDIFF accepte deux paramètres et vous passez trois paramètres ici.

Comment ça marche et aussi il ne retourne que la différence b / w dates sans compter le temps.

http: //dev.mysql. com / doc / refman / 5.1 / fr / Date et heure-functions.html

retourne DATEDIFF() jours de différence.

Utilisez TIMEDIFF() ou convertir les horodateurs avec TO_SECONDS()) et obtenir leur différence:

SELECT TO_SECONDS(log.end_time) - TO_SECONDS(log.start_time) AS seconds
  FROM log 
  WHERE log.log_id = "some crazy UUID"
;

DATEDIFF :

De la msdn, il renvoie le nombre (entier signé) des limites de datepart spécifiées croisées entre la date de début et date de fin spécifiée. La fonction DATEDIFF() retourne le temps entre deux dates. Syntaxe:

DATEDIFF ( datepart , startdate , enddate )  

Vous devez utiliser TIMEDIFF() ou fonction TIMESTAMPDIFF().
Il suffit de remplacer la fonction TIMESTAMPDIFF() avec DATEFDIFF()

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top