簡體   English   中英

計算兩個時間戳之間的小時差?

[英]Calculate hour difference between two timestamps?

我正在使用 Firebird 進行一個 PHP 項目,關於工作時間。 基本上,每個工人都有一張卡,他在進出大樓時蓋上章。 每個戳記都記錄到ARCHIVE表中,帶有日期 ( DATUM )、id ( NREC ) 和 user_id ( NCODE )。 我要做的是獲取每天的最后一次和第一次,並計算小時數。 所以為了獲得第一個和最后一個,我使用了這個:

SELECT MAX(NREC)
FROM ARCHIVE
WHERE DATUM BETWEEN '$day.$month.$year' AND '$day+1.$month.$year';

SELECT MIN(NREC)
FROM ARCHIVE
WHERE DATUM BETWEEN '$day.$month.$year' AND '$day+1.$month.$year';

我將 max 和 max 都保存在一個變量中,然后選擇這兩個日期並進行計算。 但那是 4 個查詢。 有沒有更簡單/更簡單的方法? 此外, DATUM是一個時間戳

可以試試:

SELECT DATUM FROM ARCHIVE JOIN (
    SELECT MIN(NREC) AS minid, MAX(NREC) as maxid FROM ARCHIVE 
    WHERE DATUM  DATUM BETWEEN '$day.$month.$year' AND '$day+1.$month.$year' 
    AND NCODE = user_id) 
as mm ON mm.maxid = ARCHIVE.NREC OR mm.minid=ARCHIVE.NREC 

如果 Firebird 像 MySQL 那樣工作,這應該給你兩個時間戳。

關於什么

SELECT CAST(DATUM AS DATE), MAX(NREC), MIN(NREC)
FROM ARCHIVE
GROUP BY 1

(可選)結合正確日期范圍的條件?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM