2017-10-09 3 views
1

Ich habe Dauerwerte in Mikrosekunden in Redshift, die ich in einer reduzierten Form zeigen möchte, zB 49275177354 sollte als 13:41:15.177354 oder etwas ähnlich Menschenlesbares erscheinen.Redshift von Menschen lesbare Dauern/gleichwertig zu Postgres `justify_interval`

Die Werte können zwischen einigen Sekunden und mehreren Stunden liegen. Daher variiert die entsprechende Basiseinheit von Reihe zu Reihe.

In Postgres, würde ich dies mit justify_interval wie folgt behandeln:

select justify_interval(interval '1 usec' * my_col_usec) from my_table;

Wie dies in Redshift erreicht werden kann? Ich habe mir die Dokumente zu Redshift-Intervallen angeschaut (zB this), habe aber keine relevanten Funktionen gefunden. Die nächste beste Abhilfe, die ich habe kommen mit ist case Aussagen zu verwenden, aber ich möchte etwas ein bisschen mehr prägnant und idealerweise eingebaut.

Antwort

1

Sie sollten so etwas wie

select (49275177354 * INTERVAL '0.000001 second'); 

verwenden oder

select '00:00:00.000'::time+ (49275177354 * INTERVAL '0.000001 second'); 
+0

Perfekt. Vielen Dank! – alexroussos

Verwandte Themen