Преобразовать этот запрос SQL Server в Oracle - PullRequest
0 голосов
/ 24 января 2012

У меня есть следующее в запросе 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, а затем усекаете часть времени и сохраняете только часть даты.

Ответы [ 2 ]

1 голос
/ 24 января 2012

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

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

или

select trunc(TR.TR_DATETIME - NUMTODSINTERVAL(L_LAST_TIME, 'SECOND')) AS TRDATE
0 голосов
/ 24 января 2012

Мы можем сделать арифметику с датами в Oracle.

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

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

...