Calculați diferența dintre două datetime în MySQL (Programare, Mysql)

Devesh Agrawal a intrebat.

Stochez ultima oră de conectare în MySQL în, datetime-tip depus. Când utilizatorii se conectează, vreau să obțin diferența dintre ultima oră de conectare și ora curentă (pe care o obțin folosind NOW()).

Cum pot să o calculez?

Comentarii

  • stackoverflow.com/questions/2546053/… – –  > Por Kamlesh.
3 răspunsuri
FSP

USE TIMESTAMPDIFF Funcția MySQL. De exemplu, puteți utiliza:

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

În cazul dvs., al treilea parametru din TIMSTAMPDIFF ar fi ora curentă de conectare (NOW()). Al doilea parametru ar fi ultima oră de conectare, care se află deja în baza de date.

Comentarii

  • Ceea ce vreau este ca în stackoverflow întrebarea dvs. postată cu 2s în urmă, 30s în urmă, 2 min în urmă… etc. Vreau un tip de funcționalitate similară. De exemplu, există o tabelă numită CERERI (id, mesaj, timestamp). timestamp-ul în timpul stocării va fi NOW() . în timp ce execut o interogare, select * from requests, în loc să afișez această valoare, ar trebui să afișeze id, mesaj și cât timp a fost postată cererea. –  > Por Devesh Agrawal.
  • În timp ce se execută interogarea SELECT TIMESTAMPDIFF(SECOND, NOW(), ‘select lastLoginTime from requests where id = ‘2’ ‘)…. Aceasta returnează NULL. Aveți vreo idee de ce? –  > Por Devesh Agrawal.
  • Care este rezultatul selectării lastLoginTime from requests where id = ‘2’? –  > Por FSP.
  • SELECT TIMESTAMPDIFF(SECOND,NOW(),’2012-06-06 08:07:36′); Încercați acest lucru! –  > Por FSP.
  • Da, funcționează, dar am nevoie să extrag al doilea parametru din tabel. Cum se poate realiza acest lucru. De fapt, vreau să evit interogările imbricate. Aveți vreo idee? –  > Por Devesh Agrawal.
ingconti

cei doi cenți ai mei despre logică:

sintaxa este „data veche” – : „data nouă”, deci:

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

dă 30,

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

dă:-40

Adi

Dacă datele de început și de sfârșit se află în zile diferite, utilizați TIMEDIFF.

SELECT TIMEDIFF(datetime1,datetime2)

if datatime1 > datatime2 then

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

dă: 24:01:00

și datetime1 < datetime2

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

dă: -24:01:00

Comentarii

  • Notă: poate face față numai la date cu o diferență de până la 839 de ore.  > Por Caius Jard.

Tags: