2016-11-24 4 views
1

У меня есть следующие две даты, которые представлены в форме varchar (50).PostgreSQL 9.5: Преобразование интервалов INTO в миллисекундах

Date1: 2016-11-24 12:38:29.123

Дата2: 2016-04-22 11:44:55

Первая дата, которая Date1 содержит миллисекунды и Date2 содержит до секунд. Так что я сделал кастинг, чтобы встать на несколько секунд с обеих дат.

Использование:

SELECT ('2016-11-24 12:38:29.123'::timestamp(0) - '2016-04-22 11:44:55'::timestamp(0)); 

Выход:

216 days 00:53:34

Примечание: Теперь я хочу, чтобы преобразовать 216 days 00:53:34 в миллисекундах.

Моя попытка:

SELECT EXTRACT(MILLISECONDS FROM(CAST('2016-11-24 12:38:29.123' AS timestamp(0)) - CAST('2016-04-22 11:44:55' AS timestamp(0)))); 

Выход:

34000

Проблема: 34000 не точные миллисекунды 216 days 00:53:34.

ответ

6

Вы ищете epoch, который возвращает количество секунд, сохраненных в интервале.

SELECT extract(epoch from timestamp '2016-11-24 12:38:29.123' - timestamp '2016-04-22 11:44:55'); 

возвращается: 18665614