как получить время из метки времени без типа данных часового пояса параметра в PostgreSQL

#postgresql

Вопрос:

ПРИВЕТ, у меня есть 2 параметра, которые являются меткой времени без типа данных часового пояса, я вычисляю эти 2 параметра clock_out_time и clock_in_time

вот моя функция

 (select EXTRACT ( hour from (select sum( att.clock_out_time - att.clock_in_time) 
            from public."VOfficeApp_employee_attendence" att
            where att.user_id = 2017
            and att.company_id =391 
            and date_part('month', date) = 4)))
 

выход:
«24»
ТО, ЧТО Я ИЩУ:
«24:38:30.084»

На самом деле мне нужно конвертировать эти дни в время, как я могу конвертировать

 29 days 24:38:30.084
 

Ответ №1:

Результатом вычитания метки времени из метки времени является an interval . Вы можете отформатировать результат с помощью to_char()

 select to_char(sum(att.clock_out_time - att.clock_in_time), 'hh24:mi:ss.ff3') 
from public."VOfficeApp_employee_attendence" att
where att.user_id = 2017
  and att.company_id =391 
  and date_part('month', date) = 4)
 

Обратите внимание, что ваш внешний ВЫБОР не был необходим:

 select extract(hour from sum(att.clock_out_time - att.clock_in_time)) 
from public."VOfficeApp_employee_attendence" att
where att.user_id = 2017
  and att.company_id =391 
  and date_part('month', date) = 4)