【问题标题】:DateDIFF, TIMESTAMPDIFF for hoursDateDIFF, TIMESTAMPDIFF 小时
【发布时间】:2011-11-16 02:26:18
【问题描述】:

对于我使用它作为日期数据类型的时间。当我减去它时,它通常会扣除。如何以小时等时间格式减去它?我试过把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;

对于时间戳差异:

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;

【问题讨论】:

    标签: sql oracle datetime


    【解决方案1】:

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

    例如,sysdate 是现在,sysdate-1 正好是一天前,sysdate-(1/24) 是一小时前,等等。

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

    如果您留在 Oracle 中,则无需再复杂化。您不需要 datediff,这很好,因为它不存在。

    【讨论】:

    • 谢谢!我想得太复杂了。
    猜你喜欢
    • 1970-01-01
    • 2014-11-26
    • 2018-05-04
    • 2016-10-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-15
    • 2021-11-20
    相关资源
    最近更新 更多