2014-01-31 4 views
0

У меня есть столбец, который имеет данные в «12:19:04» в этом формате. i.e 12 часов 19 мин и 4 сек. я хочу, чтобы преобразовать это в количество дней с учетом рабочих часов в один день т.е. 10 чКак конвертировать количество часов в число рабочих часов в postgreSql?

поэтому выше время должно отображаться как 1 день 2 часов 19 мин и 4 сек

, а также, если значение часов слишком велика, а месяц и месяц должны отображаться часы и минуты.

Пожалуйста, помогите мне в этом.

ответ

1

Самый простой способ: использовать эпоху, делить на 10 дней в секундах, конвертировать остаток обратно в секунды.

WITH s(secs) AS (SELECT extract(epoch from interval '12:19:04')) 
SELECT justify_interval(
     floor(secs/36000) * INTERVAL '1' DAY 
     + (secs::integer % 36000) * INTERVAL '1' SECOND 
) FROM s; 
+0

спасибо :) она работала :) – user3243383

+0

я создал эту функцию, но она олько дает секундную часть и не отображается хоть что «00:00:04» олько это как выход подводит. – user3243383

+0

@ user3243383 Ну, не видя * ввода *, я ничего не могу сказать о * выводе *. Второй запрос намного лучше, не используйте первый. –

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