DateDIFF, TIMESTAMPDIFF для часов - PullRequest
       0

DateDIFF, TIMESTAMPDIFF для часов

1 голос
/ 16 ноября 2011

Для часов я использую его как тип данных даты.Когда я вычитаю это, это обычно вычитает.Как я могу вычесть это в формате времени как часы?Я пытался поставить datediff, timestampdiff, но там написано invalid identifier.Должен ли я создать какую-либо функцию перед выполнением?Или я не активировал datediff в Oracle?

Ниже мой код:

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;

1 Ответ

4 голосов
/ 16 ноября 2011

В Oracle вы можете легко выполнять арифметику для выражений даты / времени.Вычитание одного выражения из другого дает число дней (с точностью с плавающей запятой) между двумя выражениями.

Например, sysdate прямо сейчас, sysdate-1 ровно один день назад, sysdate-(1/24)один час назад и т. д.

Итак, если у вас есть два элемента даты / времени с именами when и then, количество часов между ними равно (when-then)*24

Нетнужно сделать его более сложным, чем если вы остаетесь в Oracle.Вам не нужен датедфф, что хорошо, потому что его там нет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...