У меня есть запрос в Mysql, который возвращает минуты, используя TIMESTAMPDIFF в таблице. Но теперь я перенесла свои данные в Oracle. Поэтому я хочу использовать тот же запрос, чтобы получить TIMESTAMPDIFF в таблице в Oracle. Oracle также не поддерживает функцию NOW() в mysql. Столбец PROCESS_START_DATE в запросе содержит данные, которые содержат дату и время. Я пробовал функцию EXTRACT в oraclebut, не работал. Вот мой запрос:Как написать функцию mysql TIMESTAMPDIFF в запросе SQL sql
select * from(
select trunc(abs(to_date('27/01/2015 08:00:00','dd/mm/yyyy hh:mi:ss') - PMS.PROCESS_START_DATE)*24*60),PM.NAME,PM.ENABLED
from PROCESS_MONITOR_STATISTIC PMS
JOIN PROCESS_MONITOR PM ON PM.ID=PMS.PROCESS_MONITOR_ID
WHERE PM.ENABLED=1 AND PM.NAME= 'WORKFLOWENGINE1'
order by PMS.PROCESS_START_DATE desc
)
where ROWNUM = 1
Является ли ваша колонка DATE (которая включает время) или TIMESTAMP (что более точно)? Это повлияет на то, используете ли вы 'sysdate' или' systimestamp' вместо 'now()' и как разность преобразуется в одно значение, представляющее разницу в (целых?) Минутах. –
Его столбец данных типа datetime и содержит значение как 2014-12-30 14:44:24. И если вы можете проверить запрос, я установил предел строки в 1. Поэтому он рассчитает разницу минут только для этой строки. –
Просто измените 'to_date ('27/01/2015 08:00:00 ',' dd/mm/yyyy hh: mi: ss ')' by 'sysdate' – Aramillo