将此 SQL Server 查询转换为 Oracle

发布于 2024-12-28 11:34:45 字数 249 浏览 3 评论 0原文

我在 SQL Server 查询中有以下内容,我必须将其转换为 Oracle sp

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

本质上,您从 TR_DATETIME 中减去 L_LAST_TIME 秒,然后截断时间部分并仅保留日期部分。

I have the following in a SQL Server query which I have to convert to Oracle sp

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

Essentially you subtract L_LAST_TIME seconds from TR_DATETIME and then truncate the time part and keep only the date part.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

写给空气的情书 2025-01-04 11:34:45

您可以划分间隔:

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

select trunc(TR.TR_DATETIME - NUMTODSINTERVAL(L_LAST_TIME, 'SECOND')) AS TRDATE

You can divide intervals:

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
拍不死你 2025-01-04 11:34:45

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

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

l_last_time 除以 86400 会将秒数变为一天的一小部分。从 tr_time 列中减去它会得到一个新的、更早的日期。截断日期会删除时间部分。

We can do arithmetic with dates in Oracle.

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

Dividing l_last_time by 86400 turns a number of seconds into a fraction of day. Subtracing it from the tr_time column gives you a new, earlier date. Truncating a date removes the time component.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文