Преобразуйте этот запрос SQL Server в Oracle

У меня есть следующее в запросе SQL Server, который я должен преобразовать в Oracle sp

DATEADD(dd, 0, DATEDIFF(dd, 0, DATEADD(ss, -L_LAST_TIME, TR.TR_DATETIME))) AS TRDATE,

По сути, вы вычитаете L_LAST_TIME секунды из TR_DATETIME, а затем усекаете часть времени и оставляете только часть даты.


person Pinchas K    schedule 24.01.2012    source источник


Ответы (2)


Вы можете разделить интервалы:

select trunc(TR.TR_DATETIME - interval L_LAST_TIME SECOND) AS TRDATE  

or

select trunc(TR.TR_DATETIME - NUMTODSINTERVAL(L_LAST_TIME, 'SECOND')) AS TRDATE
person A.B.Cade    schedule 24.01.2012

Мы можем выполнять арифметические действия с датами в Oracle.

select trunc(tr.tr_time - (l_last_time/86400)) as trdate
from tr
/

Деление l_last_time на 86400 превращает количество секунд в долю дня. Вычитание его из столбца tr_time дает новую, более раннюю дату. Сокращение даты удаляет компонент времени.

person APC    schedule 24.01.2012