Calcola la differenza tra due periodi di dati in MySQL


Risposte:


296

UTILIZZARE la TIMESTAMPDIFFfunzione MySQL. Ad esempio, puoi usare:

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

Nel tuo caso, il terzo parametro della TIMSTAMPDIFFfunzione sarebbe il tempo di accesso corrente ( NOW()). Il secondo parametro sarebbe l'ultimo tempo di accesso, che è già nel database.


Cioè per aggiornare l'ultimo accesso giusto ?? quello che voglio è come nello stackoverflow la tua domanda pubblicata 2 anni fa, 30 anni fa, 2 minuti fa .. ecc. Voglio un tipo simile di funzionalità. Ad esempio c'è una tabella che dice RICHIESTE (id, messaggio, timestamp). il timestamp durante la memorizzazione sarà ADESSO (). mentre eseguo una query, seleziona * da richieste, invece di visualizzare quel valore dovrebbe visualizzare ID, messaggio e quanto tempo è stata postata la richiesta.
Devesh Agrawal,

1
Mentre sto eseguendo la query SELECT TIMESTAMPDIFF (SECOND, NOW (), 'seleziona lastLoginTime dalle richieste dove id =' 2 ''). Restituisce NULL. Qualche idea sul perché ??
Devesh Agrawal,

qual è l'output di select lastLoginTime dalle richieste dove id = '2'?
FSP,

SELEZIONA TIMESTAMPDIFF (SECONDO, ADESSO (), '2012-06-06 08:07:36'); Prova questo!
FSP,

Sì che funziona, ma devo recuperare il secondo parametro dalla tabella. Come raggiungerlo Infatti voglio evitare la query nidificata. Qualche idea?
Devesh Agrawal,

3

i miei due centesimi sulla logica:

la sintassi è "vecchia data" -: "nuova data", quindi:

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


2

Se i tuoi orari di inizio e fine sono in giorni diversi, usa TIMEDIFF.

SELECT TIMEDIFF(datetime1,datetime2)

se datetime1> datetime2 quindi

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

dà: 24:01:00

e datetime1 <datetime2

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

dà: -24: 01: 00


Nota, può far fronte solo a date fino a 839 ore di distanza
Caius Jard
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.