Как рассчитать короткий час в и короткий час в postgresql? - PullRequest
0 голосов
/ 15 ноября 2018
id    checkin   checkout
------------------------
1     12:27      18:10
2     11:00      19:59

Я хочу получить этот результат и исправить время заезда 11:00:00 и время проверки заказа 20: 00: 00.

Я использую этот запрос

 select min(checktime)::time as checkin, 
        max(checktime)::time as checkout,
        (case 
           when cast(min (a.checktime) as time)  > '11:00:00' then  
               (extract (epoch from min (a.checktime)::time - '11:00:00')/3600 ) 
           else 0  
         end) as shorthour_in ,
         (case 
            when cast(max (a.checktime) as time) <= '20:00:00' 
               then (extract (epoch from  '20:00:00' - max (a.checktime)::time )/3600 ) 
            else 0  
         end) as shorthour_out
from attendance_FHLHR


id    checkin   checkout   shorthour_in     shorthour_out
 ---------------------------------------------------------
  1     12:27      18:10       1.45             1.83
  2     11:00      19:59       0                0.016

Может ли кто-нибудь подсказать мне, правильно ли запросить / рассчитать часы?

1 Ответ

0 голосов
/ 15 ноября 2018
select min (  checktime )::time as checkin, 
max (checktime)::time as checkout,
(case when cast(min (checktime) as time)  >= '11:00:00' then  
(extract (epoch from min (checktime)::time - '11:00:00')/3600 ) else 0  end) as shorthour_in ,
(case when cast(max ( checktime) as time) <= '20:00:00' then  
(extract (epoch from  '20:00:00' - max ( checktime)::time )/3600 ) else 0  end) as shorthour_out
from attendance_FHLHR

проверьте этот ответ.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...