Система: Postgresql 9,6. Я не проектировал эту систему, и в этой таблице есть поля startdate (поле типа Date), starttime (Time), enddate (Date) и endtime (Time), но между двумя полями нет ни одного часа. Типы полей для каждого поля выше указаны в (parens).
Что мне нужно: используя поля даты и времени, я бы хотел разницу в десятичных часах. Это будет вычисляемый столбец в моей инструкции SELECT.
- Я искал поисковую систему и Stackoverflow для этого, и нет ничего, что точно соответствует тому, что мне нужно.
- Некоторые примеры покажи мне разницу в днях, но это то, что я хочу.
- Другой пример показывает разницу только в 2 раза, но мне нужно учесть работников третьей смены, которые начинаются в один день и заканчиваются на следующий день .
- В других примерах не учитываются разные звёздные и конечные даты.
- Некоторые люди могут начинать в один день и заканчивать sh смену на следующий день, поэтому это может занять 2 разных даты во внимание.
Я попробовал это и получил результат в формате "чч: мм: сс": endtime - starttime as hrs
Я долго искал, как преобразовать это результат до десятичных часов. Я также пробовал эти форматы:
(date enddate time endtime) - (date startdate time starttime) as hrs
(enddate endtime) - (startdate starttime) as hrs
timestamp(enddate endtime) - timestamp(startdate starttime) as hrs
age(enddate endtime) - age(startdate starttime) as hrs
extract(EPOCH FROM timestamptz(enddate endtime)) - extract(EPOCH from timestamptz (startdate starttime))
Я не много делаю SQL на работе, поэтому любая помощь будет принята. Я учусь, видя код, но я также хотел бы понять, что делает каждая часть, чтобы я мог ПОНИМАТЬ и применить это понимание к будущим проблемам.
Спасибо!