2016-07-15 12 views
0

Ich weiß, dass man für das Intervall des Datentyps extract (epoch from interval) verwenden würde, um die Länge des Intervalls in Sekunden zu erhalten. Die Dezimalgenauigkeit davon scheint 5 zu sein, da ich einen Zeitstempel habe, der bis in die Hundert-Nanosekunden-Genauigkeit geht (beim Import in Tabelle auf Mikrosekunden gekürzt), aber bei Verwendung von Extrakt (Epoche) darauf. Wenn ich also den zurückgegebenen Wert des Extrakts (Epoche) mit 1 Million multiplizieren würde, würde ich nur eine Genauigkeit von einigen zehn Mikrosekunden erhalten. Gibt es irgendeine Funktionalität, die ein Intervall in Mikrosekunden umwandeln kann oder die Sekunden multipliziert, meine beste Option?Konvertieren Intervall in Mikrosekunden als Zahl in PostgreSQL?

+1

können Sie 'extract (microse cond from ) 'um die Mikrosekunden zu erhalten –

+0

Die PostgreSQL-Dokumentation für den Extrakt (Mikrosekunden) ergibt: SELECT EXTRACT (MICROSECONDS FROM TIME '17: 12: 28.5 '); Ergebnis: 28500000 Dies scheint nicht die Länge des Intervalls in Mikrosekunden, nur die Mikrosekunden Teil. – Ben

Antwort

2

extract gibt eine double precision floating-point zurück, deren Genauigkeit je nach Plattform variiert.

Der Typ mit doppelter Genauigkeit hat typischerweise eine Reichweite von etwa 1E-307 bis 1E + 308 mit einer Genauigkeit von mindestens 15 Stellen.

select extract(epoch from now()); 
    date_part  
------------------ 
1468585846.00179 

Die extra_float_digits steuert die Anzahl der zusätzlichen signifikanten Ziffern Einstellung enthalten, wenn ein Gleitkommawert umgewandelt wird, für die Ausgabe

set extra_float_digits = 3; 

select extract(epoch from now()); 
     date_part  
--------------------- 
1468586127.88283896 

extra_float_digits Text an der Sitzung festgelegt werden kann, wie oben, unter database level oder unter server level

+0

Das sieht vielversprechend aus, danke! Also muss ich einfach setzen extra_float_digits = 3; vor allem anderen und wird diese Einstellung beibehalten oder muss ich es jedes Mal zurücksetzen? – Ben

+0

@Ben Aktualisiert mit Parametereinstellung –

+0

Sehr geschätzt, das scheint genau das zu sein, wonach ich suche. – Ben

Verwandte Themen