----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).
Проблема в том, что 'month' не является стандартной единицей. Если у вас есть интервал в 61 день, например, это 2 месяца (31-дневный месяц, за которым следует 30-дневный месяц)? 2 месяца 1 день (2 30-дневных месяца плюс день)? Или, может быть, один из месяцев - 28 или 29 дней. Если вы можете определить алгоритм, который вам нужен, мы сможем помочь, но определить, что это разумно, трудно. –
Я использую следующий код для расчета месяца. выберите to_char (LAST_DAY (Sysdate), 'DD') из двух - Теперь для того, чтобы вычислить hire_date сотрудников с точки зрения «Employee_hired (длительность) = "Xmonths, Xdays, Xhours, Xmin, Xseconds" \t \t Теперь вышеупомянутый код упоминания (в моем вопросе) уже вычисляет, дни, часы, минуты, секунды. Все, что отсутствует, это «Месяцы» !!!!!!!!! С нетерпением ждем вашего ответа! :) – user7051332