在SQL中跳过特定时间的行

时间:2014-05-30 14:39:53

标签: sql db2

需要帮助。 我有两个时间戳列,所以基本上我想获得最大值和最小值,其中thirD列显示为timedifference。我正在跳过任何12.am时间,所以使用下面的语法。 ANy帮助如何实现第三列,timedifference ..它在DB2中。

SELECT EMPID,MIN(STARTDATETIME),MAX(ENDDATETIME)
FROM TABLE
WHERE DATE(STARTDATETIME)= '2012-05-15' AND HOUR(STARTDATETIME)<>0 AND HOUR(ENDDATETIME)<>0
GROUP BY EMPID

1 个答案:

答案 0 :(得分:2)

您可以使用内部选择中的结果,并使用这些值来定义TimeDifference列。我对DB2的了解非常有限,所以我做了一些假设,但这应该给你一个想法。如果出现严重错误,我会更新答案。

Select  EmpId, 
        MinStartDate, 
        MaxEndDate, 
        MaxEndDate - MinStartDate As TimeDifference
From
(
    Select  EMPID,
            MIN(STARTDATETIME)  As MinStartDate,
            MAX(ENDDATETIME)    As MaxEndDate
    From    Table
    Where   DATE(STARTDATETIME) = '2012-05-15' 
        And     HOUR(STARTDATETIME) <> 0 
        And     HOUR(ENDDATETIME) <> 0
    Group By EMPID
) A