2016-10-21 8 views
-1
----extract(month from diff) "month",------(adding this line gives error to the original code) 

select extract(day from diff) Days, 
     extract(hour from diff) Hours, 
     extract(minute from diff) Minutes 
from (
    select (CAST(creation_date as timestamp) - CAST(old_creation_date as timestamp)) diff 
    from [Table Name] 
); 

Этот код очень прост для понимания. Но может кто-то пожалуйста, объясните, как вычислить месяц, а здесь, когда я пытаюсь код, он дает мне следующую ошибку:Рассчитать разницу между двумя датами/временем в Oracle SQL (обновлено)

ORA-30076: invalid extract field for extract source

Этот вопрос уже обсуждался в этом форуме (за месяц, за исключением, это не мое код либо, он изначально размещен https://stackoverflow.com/users/3651607/Andy-korneyev).

+0

Проблема в том, что 'month' не является стандартной единицей. Если у вас есть интервал в 61 день, например, это 2 месяца (31-дневный месяц, за которым следует 30-дневный месяц)? 2 месяца 1 день (2 30-дневных месяца плюс день)? Или, может быть, один из месяцев - 28 или 29 дней. Если вы можете определить алгоритм, который вам нужен, мы сможем помочь, но определить, что это разумно, трудно. –

+0

Я использую следующий код для расчета месяца. выберите to_char (LAST_DAY (Sysdate), 'DD') из двух - Теперь для того, чтобы вычислить hire_date сотрудников с точки зрения «Employee_hired (длительность) = "Xmonths, Xdays, Xhours, Xmin, Xseconds" \t \t Теперь вышеупомянутый код упоминания (в моем вопросе) уже вычисляет, дни, часы, минуты, секунды. Все, что отсутствует, это «Месяцы» !!!!!!!!! С нетерпением ждем вашего ответа! :) – user7051332

ответ

1

Используйте MONTHS_BETWEEN(date1, date2), чтобы рассчитать разницу в месяце в Oracle.

+0

Я использую следующий код, чтобы рассчитать месяц days.select to_char (last_day (sysdate), 'DD') от двойного – user7051332

+0

Теперь, чтобы рассчитать занятость наемных работников с точки зрения «Employee_hired (duration) =« Xmonths, Xdays, Xhours, Xmin , Xseconds " – user7051332

+0

Теперь приведенный выше код упоминания (в моем вопросе) уже вычисляет, дни, часы, минуты, сек. Все, чего не хватает, это «Месяцы» !!!!!!!!! Ждем вашего ответа! :) – user7051332

Смежные вопросы