我用它作为日期数据类型。当我减去它时,它通常会扣除。如何以时间格式减去它,如小时?我尝试了datediff
,timestampdiff
,但它说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;
答案 0 :(得分:4)
在Oracle中,您可以轻松地对日期/时间表达式进行算术运算。从另一个表达式中减去一个表达式会产生两个表达式之间的天数(浮点精度)。
例如,sysdate
现在就是,sysdate-1
正是一天前,sysdate-(1/24)
是一小时前,依此类推。
因此,如果您有两个名为when
和then
的日期/时间项,则它们之间的小时数为(when-then)*24
如果您留在Oracle中,则无需使其复杂化。你不需要约会,这很好,因为它不存在。