2016-07-30 75 views
0

我正在做一個項目,我需要使用RFID閱讀器來計算班次時間。該設備將掃描每毫秒的RFID標籤並將其保存在緩衝區中。我使用java編程從讀取器讀取RFID細節,並在POstgreSQL數據庫中進行更新。我成功更新了從讀取器讀取到postgresql數據庫的數據。我在計算Night Shit時遇到了問題。PostgreSQL夜班計時計算

Morning &可以使用postgresql數據庫中的時間戳成功計算下午班次,因爲它在日期之內,但夜班計算正在解決我的問題,因爲班次在第一天開始,第二天結束。例如夜班於2016年6月12日開始,並於2016年6月13日結束。

這裏我不知道如何查詢數據庫。

請提前幫助感謝。

rfid_id | emp_id| User_name| access_time  
1076 | 13 | Username | 2016-07-12 21:08:26.796  
1077 | 13 | Username | 2016-07-12 21:08:27.139  
1078 | 13 | Username | 2016-07-12 21:08:27.342  
1079 | 13 | Username | 2016-07-12 21:08:27.358  
1080 | 13 | Username | 2016-07-12 21:08:27.389  
1081 | 13 | Username | 2016-07-12 21:08:27.436  

這是示例數據。 RFID讀寫器每秒鐘都會掃描員工標籤。

+1

您的問題沒有說明您要完成什麼。您需要發佈一些您嘗試過的代碼示例,例如一個用於日班計算。 –

回答

0

我建議根據班次的開始或結束時間以及班次的長度進行查詢。這對任何轉變都是一致的。例如,對於從7月28日20:00開始的8小時班次,查詢將是:

SELECT * 
    FROM 
    WHERE access_time BETWEEN to_timestamp('20160728 20:00', 'YYYYMMDD HH24:MI') 
    AND to_timestamp('20160728 20:00', 'YYYYMMDD HH24:MI') + interval '8 hours'