web-dev-qa-db-fra.com

Calculer la différence entre deux dates-heures dans MySQL

Je stocke la dernière connexion dans MySQL, dans le type datetime-. Lorsque les utilisateurs se connectent, je souhaite connaître la différence entre l'heure de la dernière connexion et l'heure actuelle (obtenue à l'aide de NOW()).

Comment puis-je le calculer?

124
Devesh Agrawal

USE TIMESTAMPDIFF Fonction MySQL. Par exemple, vous pouvez utiliser:

SELECT TIMESTAMPDIFF(SECOND, '2012-06-06 13:13:55', '2012-06-06 15:20:18')

Dans votre cas, le troisième paramètre de la fonction TIMSTAMPDIFF serait le temps de connexion actuel (NOW()). Le deuxième paramètre serait la dernière heure de connexion, qui est déjà dans la base de données.

245
FSP

mes deux cents sur la logique:

la syntaxe est "ancienne date" -: "nouvelle date", donc:

SELECT TIMESTAMPDIFF(SECOND, '2018-11-15 15:00:00', '2018-11-15 15:00:30')

donne 30,

SELECT TIMESTAMPDIFF(SECOND, '2018-11-15 15:00:55', '2018-11-15 15:00:15')

donne: - 40

0
ingconti

Si vos dates de début et de fin correspondent à des jours différents, utilisez TIMEDIFF.

SELECT TIMEDIFF(datetime1,datetime2)

si datetime1> datetime2 alors

SELECT TIMEDIFF("2019-02-20 23:46:00","2019-02-19 23:45:00")

donne: 24:01:00

et datetime1 <datetime2 

SELECT TIMEDIFF("2019-02-19 23:45:00","2019-02-20 23:46:00")

donne: -24: 01: 00 

0
Adi