Преобразование метки времени красного смещения, сохраняющее разрешение в миллисекундах - PullRequest
0 голосов
/ 11 февраля 2019

Попытка преобразовать bigint 1549757162511 в timestamp в красное смещение.

  1. select 1549757162511::timestamp;

завершается неудачно с cannot cast type bigint to timestamp without time zone

select timestamp 'epoch' + 1549757162511 / 1000 * interval '1 second';

2019-02-10 00:06:02.000000 не имеет миллисекунд

Это работает ... но есть ли лучший способ сделать это?

select dateadd(milliseconds, 1549757162511 % 1000, (timestamp 'epoch' + 1549757162511 / 1000 * interval '1 second'));

2019-02-10 00:06:02.511000

часовой пояс UTC

1 Ответ

0 голосов
/ 12 февраля 2019

Нашел другой способ сделать это.Не уверен, что это лучше, но это деф.очиститель.

(timestamp 'epoch' + 1549757162511::numeric / 1000 * interval '1 second')

...