2012-01-24 85 views
0

我有一个SQL Server查询下面,我不得不从TR_DATETIME转换到Oracle SP转换这个SQL Server查询到Oracle

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

基本上你减去L_LAST_TIME秒钟,然后截断一部分时间只有不停日期部分。

回答

1

您可以将时间间隔:

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

我们可以在Oracle中使用日期进行算术运算。

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

除以86400 l_last_time匝的秒数成一天的一小部分。从tr_time列中删除它会为您提供一个新的更早的日期。截断日期会删除时间组件。