2016-04-29 12 views
5

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.

+0

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

+0

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

+0

Che aspetto ha lo schema, quindi? Modifica la tua domanda e aggiungi che, se puoi, renderà molto più chiaro ciò che vuoi fare. – tadman

risposta

3

provare qualcosa in queste righe:

select datediff(dd, a.timestamp, b.timestamp) 
    from #Table a 
    join #Table b on a.timeStamp = (select max(c.timeStamp) 
    from #Table c where c.timeStamp < b.timeStamp) 
+0

Hai tre argomenti in là per 'DATEDIFF()' stranamente. – tadman

+0

Ho provato le versioni di questo, ma ottengo questo errore strano 'Le sottoquery nella clausola ON non sono supportate'. – geekchic

+0

@tadman e sì, è permesso :) Indica alla funzione di restituire la differenza in giorni/settimane/ore/minuti e così via. – geekchic

Problemi correlati