Eseguo una query sulla mia tabella che rende i timestamp di ritorno in ordine ascendente (dal più vecchio al più recente). Come in I mettere in una linea ORDER BY timestamp
.Come restituire la differenza tra i timestamp in SQL?
Ho bisogno dei miei risultati per avere una colonna denominata "Numero di giorni" che contiene la differenza tra i timestamp, ad esempio (Timestamp 2 - Timestamp 1), (Timestamp 3 - Timestamp 2), (Timestamp 4 - Timestamp 3)) e così via. Come faccio a farlo usando SQL?
value timestamp Days Taken
2 2016-03-16 05:11:40 -
3 2016-03-18 03:46:42 ?
4 2016-03-18 04:09:44 ?
5 2016-03-21 04:01:46 ?
6 2016-03-22 04:38:17 ?
Sono in grado di utilizzare la colonna value
come un indice, perché è definito come una stringa e non un int ed è per questo this non funziona per me. I giorni presi sono il valore che vorrei calcolare.
Modificato per aggiungere: eseguo DbVisualizer per Vertica che non sembra supportare le sottoquery nella clausola ON.
Leggendo il manuale sarebbe abbiamo mostrato il [ 'DATEDIFF()'] (http://dev.mysql.com/doc/refman/5.7/en /date-and-time-functions.html#function_datediff) funzione. – tadman
Sì, avrei dovuto essere più chiaro. Sono a conoscenza della funzione, ma non sono sicuro di come eseguire un 'DATEDIFF()' tra più righe della stessa query. Un self-join? – geekchic
Che aspetto ha lo schema, quindi? Modifica la tua domanda e aggiungi che, se puoi, renderà molto più chiaro ciò che vuoi fare. – tadman