2015-12-17 5 views
1

Пакет базы данных Octave определяет, что временная метка PostgreSQL возвращается в Octave как положительная или отрицательная разница по 8 байт в 2000-01-01 00:00 (скаляр int64, представляющий микросекунды)Временная метка базы данных Octave из PostgreSQL

например timestamp 2015-12-04 11:22:08 возвращается как 502543328000000 в Octave.

Как преобразовать это в более удобочитаемую и полезную форму, если я намерен построить временные ряды в Октаве?

ответ

0

Использование datestr. Обратите внимание, что datestr ожидает серийный номер даты в единицах дней, начиная с 1 января 0000, как видно из datenum docs

Возврат ввода даты/времени в качестве серийного номера дня, с 1 января 0000 определяется как 1-й день .

Итак, сначала мы должны преобразовать ваш серийный номер PostgreSQL (а) единиц дней вместо микросекунд и (б), чтобы начать с года 0000 вместо 2000

timestamp = 502543328000000;     % in microsecond since 2000 
timestamp = timestamp/(1000000*60*60*24); % Days since 2000 
timestamp = timestamp + datenum([2000,1,1]); % Days since 0000 
datestr(timestamp, "yyyy-MM-dd HH:mm:ss")  % Formatted string 
Смежные вопросы