Comment puis-je obtenir la différence entre deux dates en MYSQL?
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.
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()