2015-04-15 3 views
0

Я использую функцию PostgresSQL to_timestamp (двойная точность) для преобразования времени эпохи к нормальной отметке времени, но я столкнулся с проблемой, где метка времени неверенPostgresSQL время эпохи преобразование

SELECT to_timestamp(1428058548491); 

производит «47223-05- 17 12: 08: 11,000064 + 02"

в то время как она должна быть 4/3/2015, 12:55:48 PM GMT + 2: 00 DST

SELCT to_timestamp(1428058557697); 

производит «47223-05-17 14 : 41: 36.999936 + 02 "

в то время как она должна быть 4/3/2015, 12:55:57

как можно увидеть даты, были преобразованы в корне неверно

+0

'$ date --date =" @ 1428058548491 " Wed, May 17, 47223 6:08:11 AM' Ваша« эпоха времени »кажется не ожидаемой, стандартной эпохой Unix. С какой платформы это? –

+5

'to_timestamp()' ожидает секунды, а не миллисекунды: 'SELECT to_timestamp (1428058548491/1000);' –

ответ

0

Как объяснялось от людей, в комментариях для людей, которые получают та же проблема. Функция to_timestamp() ожидает ее в секундах, а не в миллисекундах, поэтому это решение.

Quote from the manual:

он принимает двойную точность аргумент и преобразует Unix эпохи (секунд так 1970-01-01 00: 00: 00 + 00) для временной метки с временной зоной

Смежные вопросы