几小时的DateDIFF,TIMESTAMPDIFF

时间:2011-11-16 02:26:19

标签: sql oracle datetime

我用它作为日期数据类型。当我减去它时,它通常会扣除。如何以时间格式减去它,如小时?我尝试了datedifftimestampdiff,但它说invalid identifier。我必须在执行前创建任何函数吗?或者我没有在Oracle上激活datediff

以下是我的代码:

Select S.Test_Date, E.Testno, S.Examno, S.Serialno, 'Science'
      ,DATEDIFF(hours, F.STARTED, F.ENDED) as hours From Semester S, TIME F
      ,TESTPAPERS e
Where S.Testno= F.Testno
And E.Testno =1;

对于timestampdiff:

Insert Into Test (Test_Date, Testno, Examno, Serialno, Type, Hours)
Select S.Test_Date, E.Testno, S.Examno, S.Serialno, 'Science'
     , TIMESTAMPDIFF(F.STARTED- F.ENDED) as hours From Semester S, TIME F
     , TESTPAPERS e
Where S.Testno= F.Testno
And E.Testno =1;

1 个答案:

答案 0 :(得分:4)

在Oracle中,您可以轻松地对日期/时间表达式进行算术运算。从另一个表达式中减去一个表达式会产生两个表达式之间的天数(浮点精度)。

例如,sysdate现在就是,sysdate-1正是一天前,sysdate-(1/24)是一小时前,依此类推。

因此,如果您有两个名为whenthen的日期/时间项,则它们之间的小时数为(when-then)*24

如果您留在Oracle中,则无需使其复杂化。你不需要约会,这很好,因为它不存在。